/* 迅雷下载 JS-SDK 1.7.4://open.thunderurl.com) */
window.thunderLink = function(e) {
  var t = {};
  function n(i) {
    if (t[i])
      return t[i].exports;
    var r = t[i] = {
      i: i,
      l: !1,
      exports: {}
    };
    return e[i].call(r.exports, r, r.exports, n),
    r.l = !0,
    r.exports
  }
  return n.m = e,
  n.c = t,
  n.d = function(e, t, i) {
    n.o(e, t) || Object.defineProperty(e, t, {
      enumerable: !0,
      get: i
    })
  }
  ,
  n.r = function(e) {
    "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
      value: "Module"
    }),
    Object.defineProperty(e, "__esModule", {
      value: !0
    })
  }
  ,
  n.t = function(e, t) {
    if (1 & t && (e = n(e)),
    8 & t)
      return e;
    if (4 & t && "object" == typeof e && e && e.__esModule)
      return e;
    var i = Object.create(null);
    if (n.r(i),
    Object.defineProperty(i, "default", {
      enumerable: !0,
      value: e
    }),
    2 & t && "string" != typeof e)
      for (var r in e)
        n.d(i, r, function(t) {
          return e[t]
        }
        .bind(null, r));
    return i
  }
  ,
  n.n = function(e) {
    var t = e && e.__esModule ? function() {
      return e["default"]
    }
    : function() {
      return e
    }
    ;
    return n.d(t, "a", t),
    t
  }
  ,
  n.o = function(e, t) {
    return Object.prototype.hasOwnProperty.call(e, t)
  }
  ,
  n.p = "",
  n(n.s = 25)
}([function(e, t, n) {
  var i = n(30)
    , r = n(6).ThunderDecode;
  n(1).mustBeSelectedThunder,
  n(1).selectThunderType;
  function o() {
    var e = navigator.userAgent.toLowerCase()
      , t = "unknown";
    return /macintosh/i.test(e) && !navigator.maxTouchPoints ? t = "Mac" : /iphone/i.test(e) ? t = "iPhone" : /ipad/i.test(e) || /macintosh/i.test(e) && navigator.maxTouchPoints ? t = "iPad" : /ipod/i.test(e) ? t = "iPod" : /android/i.test(e) ? t = "Android" : /windows/i.test(e) && (t = "Windows"),
    t
  }
  t.detectIE = function() {
    var e = window.navigator.userAgent
      , t = e.indexOf("MSIE ");
    if (t > 0)
      return parseInt(e.substring(t + 5, e.indexOf(".", t)), 10);
    if (e.indexOf("Trident/") > 0) {
      var n = e.indexOf("rv:");
      return parseInt(e.substring(n + 3, e.indexOf(".", n)), 10)
    }
    var i = e.indexOf("Edge/");
    return i > 0 && parseInt(e.substring(i + 5, e.indexOf(".", i)), 10)
  }
  ,
  t.compileOpts = function(e) {
    var t = j_xunlei_q.extend({}, e)
      , n = "";
    e = decodeURIComponent(j_xunlei_q.param(e)).split("&");
    for (var r = 0; r < e.length; r++) {
      var o = e[r].split("=");
      "undefined" !== o[1] && (n += o.shift() + "=" + encodeURIComponent(o.join("=")))
    }
    return t.sign = i(n + "123456"),
    t
  }
  ,
  t.getDocBodyObj = function() {
    var e = document.documentElement;
    return "BackCompat" == document.compatMode && (e = document.body),
    e
  }
  ,
  t.getIEVersion = function() {
    return document.querySelector ? document.documentMode : "CSS1Compat" == document.compatMode ? "XMLHttpRequest"in window ? 7 : 6 : 5
  }
  ,
  t.getUserBrowser = function() {
    var e = navigator.userAgent.toLowerCase()
      , t = "unknown";
    return /macintosh/i.test(e) && (/chrome/i.test(e) || /firefox/i.test(e) || /Safari/i.test(e) || /macThunderBrowser/i.test(e) || /AppleWebKit/i.test(e)) ? t = "MacBrowser" : /android/i.test(e) ? t = "Android" : !/msie/i.test(e) && !/trident/i.test(e) || /opera/.test(e) ? /firefox/i.test(e) ? t = "Firefox" : /opera/i.test(e) || /opr/i.test(e) ? t = "Opera" : /chrome/i.test(e) && /webkit/i.test(e) && /mozilla/i.test(e) ? t = "Chrome" : !/webkit/i.test(e) || /android/i.test(e) || /chrome/i.test(e) && /webkit/i.test(e) && /mozilla/i.test(e) || (t = "Safari") : t = "IE",
    t
  }
  ,
  t.getUserOSType = o,
  t.gteWin7 = function() {
    var e = navigator.userAgent.toLowerCase().match(/windows nt (\d+\.\d+)/) || [];
    return 2 == e.length && parseFloat(e[1]) >= 6.1
  }
  ,
  t.incaseBodyNull = function() {
    try {
      null != document.body && null != document.body || (document.body = document.createElement("body"))
    } catch (e) {}
  }
  ,
  t.loadCss = function(e) {
    if (document.getElementById(e))
      return !0;
    var t = document.getElementsByTagName("head").item(0)
      , n = document.createElement("link");
    n.setAttribute("id", e),
    n.setAttribute("type", "text/css"),
    n.setAttribute("rel", "stylesheet"),
    n.setAttribute("charset", "utf-8"),
    n.setAttribute("href", e),
    t.appendChild(n)
  }
  ,
  t.removeFdiv = function() {
    document.getElementById("fdiv") && (navigator.userAgent.indexOf("MSIE") > 0 ? document.getElementById("fdiv").removeNode(!0) : document.getElementById("fdiv").parentNode.removeChild(document.getElementById("fdiv")))
  }
  ,
  t.versionCompare = function(e, t) {
    for (var n = e.split("."), i = t.split("."), r = 0, o = 0; o < n.length; o++) {
      if (n[o] - i[o] > 0) {
        r = 1;
        break
      }
      if (n[o] - i[o] < 0) {
        r = -1;
        break
      }
    }
    return r
  }
  ,
  t.wtdChangFolder = function(e) {
    return "http://down.sandai.net/thunderx/XunLeiWebSetupjs.exe"
  }
  ,
  t.getFileNameFromURL = function E(e) {
    if (null == e || "" === e)
      return "";
    var t = e;
    if (!0 === /^ftps?|https?:\/\//g.test(e))
      t = e.split("/").pop();
    else if (!0 === /^ed2k:\/\//g.test(e))
      t = e.split("|", 3).pop();
    else if (!0 === /^magnet:\/\//g.test(e))
      t = "%e7%a7%8d%e5%ad%90%e6%96%87%e4%bb%b6";
    else if (!0 === /^thunder:\/\//g.test(e)) {
      return E(r(e))
    }
    return t
  }
  ,
  t.getIphoneVersion = function() {
    var e = window.navigator.userAgent;
    if ("iPhone" !== o() && "iPad" !== o())
      return null;
    var t = e.match(/Version\/(\d+)/) || e.match(/iPhone OS (\d+)_/);
    return t ? t[1] : null
  }
}
, function(e, t) {
  t.mustBeSelectedThunder = !1,
  t.schemeUrl = "https:" === window.location.protocol ? "https://pstatic-ssl.xunlei.com" : "http://pstatic.xunlei.com",
  t.openThunderSchemeUrl = "https:" === window.location.protocol ? "https://open.thunderurl.com" : "http://open.thunderurl.com",
  t.selectThunderType = "coThunder5",
  t.thunderHrefAttr = function(e) {
    for (var t = "poiuytrewqasdfghjklmnbvcxz", n = "", i = 0; i < e; i++)
      n += t.charAt(Math.ceil(1e8 * Math.random()) % t.length);
    return n
  }(8)
}
, function(e, t, n) {
  "use strict";
  var i = n(17)
    , r = Object.prototype.toString;
  function o(e) {
    return "[object Array]" === r.call(e)
  }
  function E(e) {
    return void 0 === e
  }
  function a(e) {
    return null !== e && "object" == typeof e
  }
  function C(e) {
    if ("[object Object]" !== r.call(e))
      return !1;
    var t = Object.getPrototypeOf(e);
    return null === t || t === Object.prototype
  }
  function s(e) {
    return "[object Function]" === r.call(e)
  }
  function B(e, t) {
    if (null != e)
      if ("object" != typeof e && (e = [e]),
      o(e))
        for (var n = 0, i = e.length; n < i; n++)
          t.call(null, e[n], n, e);
      else
        for (var r in e)
          Object.prototype.hasOwnProperty.call(e, r) && t.call(null, e[r], r, e)
  }
  e.exports = {
    isArray: o,
    isArrayBuffer: function(e) {
      return "[object ArrayBuffer]" === r.call(e)
    },
    isBuffer: function(e) {
      return null !== e && !E(e) && null !== e.constructor && !E(e.constructor) && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e)
    },
    isFormData: function(e) {
      return "undefined" != typeof FormData && e instanceof FormData
    },
    isArrayBufferView: function(e) {
      return "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(e) : e && e.buffer && e.buffer instanceof ArrayBuffer
    },
    isString: function(e) {
      return "string" == typeof e
    },
    isNumber: function(e) {
      return "number" == typeof e
    },
    isObject: a,
    isPlainObject: C,
    isUndefined: E,
    isDate: function(e) {
      return "[object Date]" === r.call(e)
    },
    isFile: function(e) {
      return "[object File]" === r.call(e)
    },
    isBlob: function(e) {
      return "[object Blob]" === r.call(e)
    },
    isFunction: s,
    isStream: function(e) {
      return a(e) && s(e.pipe)
    },
    isURLSearchParams: function(e) {
      return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams
    },
    isStandardBrowserEnv: function() {
      return ("undefined" == typeof navigator || "ReactNative" !== navigator.product && "NativeScript" !== navigator.product && "NS" !== navigator.product) && ("undefined" != typeof window && "undefined" != typeof document)
    },
    forEach: B,
    merge: function D() {
      var e = {};
      function t(t, n) {
        C(e[n]) && C(t) ? e[n] = D(e[n], t) : C(t) ? e[n] = D({}, t) : o(t) ? e[n] = t.slice() : e[n] = t
      }
      for (var n = 0, i = arguments.length; n < i; n++)
        B(arguments[n], t);
      return e
    },
    extend: function(e, t, n) {
      return B(t, function(t, r) {
        e[r] = n && "function" == typeof t ? i(t, n) : t
      }),
      e
    },
    trim: function(e) {
      return e.replace(/^\s*/, "").replace(/\s*$/, "")
    },
    stripBOM: function(e) {
      return 65279 === e.charCodeAt(0) && (e = e.slice(1)),
      e
    }
  }
}
, function(e, t, n) {
  var i = n(7)
    , r = "https://oia-pan-ssl.xunlei.com?query="
    , o = n(0).compileOpts
    , E = n(4).Dialog
    , a = n(0).getIphoneVersion
    , C = n(5)
    , s = n(0).removeFdiv
    , B = ["28317", "36759"]
    , D = n(0).incaseBodyNull
    , u = n(1).schemeUrl
    , A = 10
    , l = n(12)
    , c = n(13)
    , F = n(8)
    , d = n(6).encode64
    , h = function f(e) {
    var t = {
      port: B[0],
      sucFunc: j_xunlei_q.noop,
      errFunc: j_xunlei_q.noop,
      timeoutFunc: function() {
        f({
          port: B[1],
          method: e.method,
          data: e.data,
          type: e.type,
          timeoutFunc: j_xunlei_q.noop,
          success: e.sucFunc
        })
      }
    }
      , n = j_xunlei_q.extend({}, t, e);
    j_xunlei_q.ajax({
      url: "http://127.0.0.1:" + n.port + "/" + n.method + "/",
      dataType: "json",
      type: n.type,
      data: n.data,
      timeout: n.timeout || 500,
      success: n.sucFunc,
      error: function(e, t) {
        n.errFunc(e, t),
        n.timeoutFunc()
      },
      complete: n.complete
    })
  };
  function p(e) {
    var t = window.devicePixelRatio
      , n = j_xunlei_q('meta[name="viewport"]');
    if (n.length > 0) {
      var r = n.eq(0);
      r.attr("content").indexOf("initial-scale=1") < 0 && (r.attr("content", "width=device-width, initial-scale=1"),
      r.attr("content", "width=device-width, initial-scale=" + 1 / t))
    } else
      j_xunlei_q("head").prepend('<meta name="viewport" content="width=device-width, initial-scale=' + 1 / t + '">');
    var o = '  <style>    .xl_android_tips{position: fixed;top: 50%;left: 50%;z-index: 2147483647;margin: 0;transform: translate(-50%,-50%);}     ._xl_andriod_show_2 ._xl_android_tips_con {position: relative;width: 94.26vw;padding-top: 82.024%;overflow: hidden;}     ._xl_andriod_show_2 ._xl_android_tips_con img {position: absolute;top: 0;left: 0;width: 100%;height: 100%;}     ._xl_andriod_show_2 .close {position: absolute;right: 5vw;top: 4vw;width: 12vw;height: 12vw;}  </style>  <div class="_xl_andriod_show_2" id="thunder_m_div"><a href="javascript:;"  blockid="lianmeng_mask" event_id="new_click" clickid="lianmengproductAndroidShow" id="AndroidDiv" ></a><div class="_xl_android_tips_con" id="thunder_dl_shoulei" clickid="download"><img src="' + u + '/img/pop2.png" /><a class="close" href="javascript:;" id="union_download_close" clickid="close"></a></div></div>';
    return e.innerHTML = o,
    j_xunlei_q("#thunder_dl_shoulei").unbind("click").click(function() {
      window.location.href = i["default"].ios
    }),
    j_xunlei_q("#union_download_close").unbind("click").click(function(e) {
      s(),
      e.stopPropagation()
    }),
    !1
  }
  t.downloadWithXlwfp = function(e, t) {
    e.tasks && e.tasks.length ? e.tasks.forEach(function(e) {
      e.referer = e.referer || window.__referer__ || window.location.href
    }) : e.referer = window.__referer__ || window.location.href,
    e = o(e),
    h({
      data: e,
      method: "new_task",
      type: "POST",
      sucFunc: function(e) {
        if (null == e)
          return !1;
        var i = e.ret;
        if (0 == i)
          return !0;
        2 == i ? n(4).Dialog.popup("guide") : "function" == typeof t && t()
      }
    })
  }
  ,
  t.getXlVersion = function(e, t, n) {
    var i = 0
      , r = ""
      , E = o({
      thunderPid: e
    });
    h({
      method: "get_thunder_version",
      data: E,
      type: "GET",
      sucFunc: function(e) {
        if (null == e || 0 != e.ret)
          return !1;
        r = e.version
      },
      errFunc: n,
      complete: function() {
        "function" == typeof t && 0 === i && (i = 1,
        t(r))
      }
    })
  }
  ,
  t.playWithXmp = function(e, t, n) {
    e.tasks && e.tasks.length ? e.tasks.forEach(function(e) {
      e.referer = e.referer || window.__referer__ || window.location.href
    }) : e.referer = window.__referer__ || window.location.href,
    e = o(e),
    h({
      method: "play_media",
      data: e,
      type: "POST",
      sucFunc: function(e) {
        t(e && 0 === e.ret)
      },
      errFunc: n
    })
  }
  ,
  t.getXmpVersion = function(e, t) {
    var n = 0
      , i = ""
      , r = o({
      thunderPid: e
    });
    h({
      method: "get_xmp_version",
      data: r,
      type: "GET",
      sucFunc: function(e) {
        if (null == e || 0 != e.ret)
          return !1;
        i = e.version
      },
      complete: function() {
        "function" == typeof t && 0 === n && (n = 1,
        t(i))
      }
    })
  }
  ,
  t.iPhoneDownload = function(e, t, n) {
    var o = window.location.href
      , B = i["default"].ios_call + "?action=sharePage&shareH5=share_H5&taskDownload=" + encodeURIComponent(e) + "&ref=" + encodeURIComponent(o)
      , u = navigator.userAgent.toLowerCase();
    if (/ithunder/i.test(u)) {
      var h = document.createElement("iframe");
      h.setAttribute("src", e),
      h.setAttribute("style", "display:none;"),
      h.setAttribute("height", "0px"),
      h.setAttribute("width", "0px"),
      h.setAttribute("frameborder", "0"),
      document.body.appendChild(h),
      h.parentNode.removeChild(h)
    } else {
      if (parseInt(a()) >= A)
        return function(e) {
          var t = e.url
            , n = e.name;
          if (/(^http[s]?)|(^ftp)/.test(t)) {
            !function(e) {
              if (!navigator.clipboard)
                return void function(e) {
                  var t = document.createElement("textarea");
                  t.value = e,
                  t.style.top = "0",
                  t.style.left = "0",
                  t.style.position = "fixed",
                  document.body.appendChild(t),
                  t.focus(),
                  t.select(),
                  document.execCommand("copy"),
                  document.body.removeChild(t)
                }(e);
              navigator.clipboard.writeText(e)
            }("#*TDM-".concat(d(F.pid), "*#")),
            window.location.href = r + encodeURIComponent("xunlei://file/downloadAlert?url=".concat(encodeURIComponent(t)))
          } else
            C.reportSend("page_pop", {
              type: "yunpan_h5",
              js_cooperation_type: "download",
              files_num: 1
            }),
            E.openComfirm({
              contentHtml: "\n        <div class='xl_ios_comfirm_wrapper'>\n          <div class='xl_ios_comfirm_shadow'></div>\n          <div class='xl_ios_comfirm'>\n            <p class='title'>\u4fdd\u5b58\u8d44\u6e90\u5230\u8fc5\u96f7</p>\n            <div class='desc'>\n              <p><span>1</span>\u8d44\u6e90\u5b58\u5165\u8fc5\u96f7\u4e91\u76d8\u7f51\u9875\u7248</p>\n              <p><span>2</span>\u6253\u5f00\u8fc5\u96f7app\u9ad8\u901f\u4e0b\u8f7d</p>\n            </div>\n            <div class='content-wrap'>\n              <div class='content'>\n                <img src='".concat(l, "' class='icon' />\n                <p>").concat(n, "</p>\n              </div>\n            </div>\n            <div class='save'>\u5b58\u5165\u4e91\u76d8</div>\n            <img src='").concat(c, "' class='closeBtn' />\n          </div>\n        </div>\n      "),
              cancelText: "\u53d6\u6d88",
              comfirmText: "\u5b58\u5165\u8fc5\u96f7\u4e91\u76d8",
              cancelHandler: function() {
                C.reportSend("page_click", {
                  clickid: "yunpan_h5_save_cance",
                  url: t
                })
              },
              comfirmHandler: function() {
                C.reportSend("page_click", {
                  clickid: "yunpan_h5_save",
                  url: t
                }),
                window.location.href = "".concat("https://pan.xunlei.com/", "?taskurl=").concat(decodeURIComponent(t))
              }
            })
        }({
          url: t,
          name: n
        });
      window.location.href = B;
      var f = i["default"].ios;
      setTimeout(function() {
        if (!document.hidden && !document.hidden) {
          s();
          var e = document.createElement("div");
          e.setAttribute("id", "fdiv"),
          e.className = "xl_android_tips",
          e.setAttribute("download_url", "alert_lianmeng"),
          D(),
          document.body.appendChild(e),
          p(e),
          window.location.href = f
        }
      }, 3e3)
    }
  }
  ,
  t.ports = B
}
, function(e, t, n) {
  var i = n(1).thunderHrefAttr
    , r = n(0).wtdChangFolder
    , o = n(10)
    , E = n(5)
    , a = n(0).getUserBrowser
    , C = n(0)
    , s = n(0).versionCompare
    , B = n(3).playWithXmp
    , D = {
    base64Header: "data:image/jpeg;base64,",
    video: "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA39pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3NTNjNGM1Yi02OWM1LWQ4NDYtOGE1MS1kOGY0YzgxYTE3MTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDczM0QxNTkxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDYzQjUwOUExQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmQyODExZTE1LWU4ODgtZGI0OS1hNWQzLWU3YWE2NWZiYmNmMyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBlNjc1YzU2LTFjNzgtZDY0NC05MDU2LTgwMzY5YjE5NDJjNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsP+XOwAAAL/SURBVHjavJe7btRAFIb/cbz3UBBCIi+Ei4ACGlqoKRBCQtRUSEvHY/AcW1DQIEGLhBRRUEABJUIREkqAZHdJsglEe7+YczJjz3ixd+3FYqTR2OO5fHPm/DPH4slT987YRZWyQxmxM4LvrlHvPbswvql6V9VTWaOyYi8IVOndQdLEowj9yhNYqn4s5DNPbgn1TdUbfR0qq7Yl5pg8RQgG8NPaCpDLAu0usNlIF+LqGaCYB446wOdt3TcAUMoBI1c2NOvTgFjMy2YnCgpKtQ8A9PrSAq1eQoAYEG0as0gLbJF1hdDbEQDY2dNenRhgBsSXmlaH6RP2XBOl6JjpAySECACUl4Es+UCH9uv7z3QhLjlaBRs7GsI+JlMNCznZj8tULGNALBakD5gqsPwtUA37A7JAhsr+dIDKXWAwBF6+BZpH8SDYqrywVkeN/ZcKqKKxH08Fa6dl+fi+hPi0ORvia12PLYT2CYsn8jOM54i8YIAVyF8e3ALu3STL2TP6TowtRIgThjnPrMRNb1wDzq0Cz9aB/d8J1WFSOaSCC2WphmmrCUvlU8DD29F9LpMKrl8ErjjB+oAF8jnpqfms2qOESnDH0YAldRfwnWCOHQAYkAoypIJBX3tqXIgaOfDzN9EA3b5cWLsXHNsW0J32miEqiAHxcQN4/UFKMwpgqxE+9rEFZl4+ERB8e756TyfbNyWpOQ4vfwuSQNTJ3KMRTf4O+NX6t1PT9g8FSksn5V3Q7clDKQrixXrya/v8qvQBjgf4UNIWMM5lbuAqNUQO7CZXh6cCBi5NRFu2GZ2wE2Vsubfz+MS0xFblhU1GW7YZnTQPdNRiqiMNiB+74dvmy9AMmz2fmFcdiVUQFrv/LwhfBTzR8hJV2DIe2D1IF+Lsiow1+CTcakxsARQEN+CUzQajljQgiuqeKeZCVOB1Hg6lBbg01ZEGhPfPMRltsQVq6kcRh4fhsXsaEDXjn8MIauoWrfQRvdd5xVzvRSqeOjwfEWY0g2TRT0RktU1l5Y8AAwDFf4IhP2niBQAAAABJRU5ErkJggg==",
    music: "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA39pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3NTNjNGM1Yi02OWM1LWQ4NDYtOGE1MS1kOGY0YzgxYTE3MTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REUxMDM1ODgxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REUxMDM1ODcxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmQyODExZTE1LWU4ODgtZGI0OS1hNWQzLWU3YWE2NWZiYmNmMyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBlNjc1YzU2LTFjNzgtZDY0NC05MDU2LTgwMzY5YjE5NDJjNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmooWHwAAALRSURBVHjaxJdba9RAFMf/GVPUtmt1EWERZFvBRRGk1oLiByh9EFEUVMSXVR989UOILz73ZakKfgSlfgBhQVuleHko3ijSRbHFWiqu7Y5nMkl2kkwyyezDDiRzzTm/zOWcMw6/e28aDm/QUwEDKJcPEzmyy15dKYftGTmCOlaoXHfRcRokpCK60BECvVFUhlQmRqeV498gaM/IHcq5qJNOx2m41FYhCPknfYBwpXKq9AmCZkARZgNxclyOWZy3gnC9OnqAKI348uxmgnkKuS8gKHu5/3SglDVjhaDxCaB2lOos+U0wPiVnqYKLQJRKwKUrwLUbwPCeQhAsU3AeCI5uGh0Dbt0BDo3lhmDGvzNBBKcgSLsHgavXgcO1XBAs1xSbIL7/ADY3uxA7XODcBYIZMkKw3OucBiH63n4A7j8AZh8DX75KiEGaicnT6d+EMxBRbAEBv2+bXp9I+ewj4OUrCXHsuKJMD6FZgqIQgR1R+p/NAWtrwL5ybMMmIVKWoAAER7J/i15LH4H1dc2picp3Izs5YvkMVjC0mL5j4bGx7X/A/GskLG1MV9cZ2UJ4TUGbMnaVlmDhDSLyNRBRZ2QDwX3b7slRxjYX/OAl24u6pikyQkBZWwtX7oZ/YILYT15v6hQdrSrtbrL3vzaAd7TR2m35WMYTyibMgJg8AtSngAG3a+32DgNnTwB/abM1F7unoyBEdAZ0ENUDwO1pqjNo084BcsVV2EZWyRmIQ5w/k648SOUR2EZW+hlQIWoHYUyeHbCLrNJnIITgZoClZf15zwHBjGHT++Vs5ULw06a1K2emmA1PXgA/N/TKt7aBh8/JC7as4wmHX5zhxutUmXz7ZfLtE6PA0C7g9x8Kwz8Dc+R2W6v6a5ruOsd4YqwEAPLf7Uz3w4IQ8hQ4ik1HjrwX3xHbmGIPrIR2PEccn1jf3uKJlmC5SY2tPkB8o3r9vwADANk6DTX7JYmQAAAAAElFTkSuQmCC",
    soft: "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA39pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3NTNjNGM1Yi02OWM1LWQ4NDYtOGE1MS1kOGY0YzgxYTE3MTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RENBNDFBQkQxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REJCNDVBRDMxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmQyODExZTE1LWU4ODgtZGI0OS1hNWQzLWU3YWE2NWZiYmNmMyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBlNjc1YzU2LTFjNzgtZDY0NC05MDU2LTgwMzY5YjE5NDJjNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqnsyGMAAAR8SURBVHjaxFddbFRFFP5mdmEp23ZbulgsxUIIkQcTayxWjZZGEYMSffWlMSTExKBRE2NiTExMTEyMbzyYoIFEffNNxQdMRCMqf02wL6KIUrBFoELpLv2je8dv7uze+YEt24XITW7u/JyZ882Z851zrug5WlquFPYpoJtfJC/0VyHy+uG834azLpmHO474KX+P8bs5LQT2sdMdSwjYJ+4LSDaipB/O++34U14XaxFl5aIyXh42326tOy0FuqPrbfo/gdAWoALgdoGQArYhKm95LJsC3l0r8HOPxJa8TGSezgsceTCFt9ZKpKWVd9ciaQs7D3fcYI4tUEEeWqJzCbA1byTfXiNw1xIJYsLzHQINFB64U2DPCDA6Xb8l0iJY5IJwLa2tsaPTHQFKXHNxzp6mHhAyNpFjvuY0sG4p0JEBXlzpKwyfFKdfXiWR5Zq7swK5RXVcx6NDkUq4y8Z7qwX6cr7i0zTxzhGFg5eNTG+zwCur9JX4gL66oPD6b9GC4oTjA6axoclXPkzl245HmJizG317SeEwwXx6j8RqB0T/MrHg65C+uQTeOa1QKNlNPzyrUKRT6NMOtAsMrBDoakA8tvOMSuSKXPPmiciaX9R2HTJc8GMB2PWP3fhoUcX029gq4rvWzrixxZz04ISV+3gkwn5axlNaA4i0wLWBJSNt13OaMGZ4l8VgJRYerGSI8slWYHu7Xa19QvcO8LTT3P0KTf39uDnpQy1WbjsZs6lNeuBqssTjv0bK9da96wWWOhYYngFe4N0WHCfUGbKRMrvX+054mTJ9g9GCsqgMkR0o+NTqYjz4aJ1EP0+blcYHHqM/7AmU6+eHcZXcbc2WeOJ42QJlZIs52rkYMe120OP7mueNRfiEDvvZOYU8g9CfU8BMaWH1hAyRzXLwJLl/ngA+/1fNq1zP7iJNL1H290ngDgJ/lQGqv9X4Tf8yide6JFZkqlvCZ0Hgrdr8lUc73+7zBvo2Omljyoi2U+bMtJFpI02b+PbRkTcwWjJ3xVvqsXOz12eHlw1DEIeKwHcTDL2NwPujCvvHzfTYnMIb9PpveOcXriL2Be24PU4UbUjZ3NObk1hEzk0ye52a8kGILSd8Ftyw7cbzcv+lDsMcVWbC3jGFv2dMQtvaJtCcMnNFzn0wHAU+gPm5Wt2TbRY9XLDR7euLPCWVX+Xmp3g1X4ypJKBpuZAd0kuRdYI4wnCtWaMHz876MiPl/iSD2E+apgFFJcI8XQeIR5i+c2nT11WUW951ZmxB83CLuCZOyEr6vBkQ92ZtGn6KFFzTYPKJ/j6Ttx7Xm/OBS5eGpkp1yiZUZ0dIpy9570084X1ZOh5jwXPLhfdD8gc9/5cCr6kUlm/Cp2G9IEZJRTVrzLwyY5br+iCOFWwPUvnJKVuKe3EAthi6aUtoCl6JWLJT4SFmzwcaBe5vAqZVlcJVN5/9Syn3n83/h1O1xYYbxAk3i4ZjiQUS89wCS7g1ZrWSPxmj3DE4fyoi+HO5FXHCDzyezJDub2Zn6DaAGOS76T8BBgC/hoTrriTy+AAAAABJRU5ErkJggg==",
    image: "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA39pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3NTNjNGM1Yi02OWM1LWQ4NDYtOGE1MS1kOGY0YzgxYTE3MTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RENBNDFBQzUxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RENBNDFBQzQxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmQyODExZTE1LWU4ODgtZGI0OS1hNWQzLWU3YWE2NWZiYmNmMyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBlNjc1YzU2LTFjNzgtZDY0NC05MDU2LTgwMzY5YjE5NDJjNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlxThgEAAAL4SURBVHjaxFdLaxRBEP6qd9bdjZtN4mrMaoy6CTF4ETGRCBofJ6MHDwpiBC/xKnrQmyAKggqCF/Hkf/Ag+g886c27KJgEVLzqIdNW9/TOdM8ru2bCFgz16O7pb6qrq2po9uP6opR4LYEWc4QPFJfwHT0+7sqw1oXjsO3QZPgq82Wa+7S+wkIre5OtBeEJQsuHIWUkRKR1gmDBzxx3Zc3MOr0Lmc2pYzfmgLc8JQi29wuEp9emgCiz4fY44UKT9Pq3PyWef/Xx1y8WhPZAZ5ENQm1+bXe0y9IY4Y8v8OKbX6gnhBrTj5knjH6xab89oMuj7A11HLE1lKYbGaFM0Tgiu0ehC1xPZFGwuLiYECG6GPL3v2Vi8zc/pDWnGE9YMeB64uWK1BMWd5C2vvsl8WolAFDk7aDTn30ZTzzx5OJnJZ8CkpVHKXc+LSa2Kk+EeaBfIJw80A8QHlH+C7cahEi7Mq6evKIi5cpd5az5YVbo7NnLFRVZ97YXEEfqwL0JwkCJ+X7C0cHu84TISx7dgGh4wOO2QMm4VvEnUwLDXncgso/AkttV4MYo8xrF3Ac8OMANxTY3Y46x/rBNOl42ApF/BCyP8JecHOLyzIZTDdbLEYgrOwkLQ5RaM86MEJZatGHazj0C1ROcNZsro+LnlM5vOzQA3NpLyKM7+wiH6/m1I/cITnAwDQepKiyhI14A4tGEYEC5++vxZxwPdS8bhHCqkzUwXQMmK2ZzggPi+i7CeAVdkZp3/yBlVlGBeInkp8mI57ZHJdQGMV0NgrIXOs8VNWhmkiBE+HUGRIUhLQwGKdLuXGAC8ngd/0V3OU9MDSABIoyBDoh5/vLBEiXcrs5zodHpYnunKn/Y00mBWikOwjr3GXbtRIUSblfsGAMbLmFT1K4FnqBkDATKTDVq/OIg9pRRCM03yE1Gl75Iaf8uub9PMrWjyZV77Kw82C2a1RsEutXFZpTTzZZyFQOrznnbnWzKFe1K7r6Uryn9JitrfQDxnZ/lfwIMAA5LsL0dhTnxAAAAAElFTkSuQmCC",
    doc: "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA39pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3NTNjNGM1Yi02OWM1LWQ4NDYtOGE1MS1kOGY0YzgxYTE3MTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDM0MjEyMDQxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDM0MjEyMDMxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmQyODExZTE1LWU4ODgtZGI0OS1hNWQzLWU3YWE2NWZiYmNmMyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBlNjc1YzU2LTFjNzgtZDY0NC05MDU2LTgwMzY5YjE5NDJjNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PobHu8AAAAGaSURBVHjaxJY9TsNAEIXfWkuFFETpEokTIC7BOUIL3IE7UHIZJFpIQUNDB4kQIIUyBcv+xd5dz0QORLOW4pmMV97PM2/GVubx4gzG3AKmhfmxxsCegvU+FfuLRbC9P7enqTKzyze7qO0XykJoQLVQCIcLqiZu6Px13MZUGYv+VtZtHG8Q/Fb7Dd1TV4LQ/kpFCJsB1W9YASIApBsKQ8QSoBoEL0IhiFgCYsPjK2D/CDs5vp+Bp2smA10JCohdHv4h1YYMdClMIF5ukE3HwRTccmKm+5AZoCAENKFJMkGIYg7IQxBzINrDU2DvINYRw7eZd9NrzDpnVp/A+x0J0fQKVcj8IN/Cj3ZNPGadSjohu3+whAijv3woFM10wtjuYDLNiFBOE5obEFIQmhsQUhB8BiYntgsmiaJHqp5at/oCPu5JiIZSZqbkTtH4R3eUndZ0cT4Dy9nwy5b62h3bHdk7p8/EZg0IaILPgBCEzupYASKWwFSDSEpQB6IogTyEmwNzurfVeEvGGuL6ILZwkXP7Z1EB4tX+pr8CDAC0V05wcld/VgAAAABJRU5ErkJggg==",
    group: "iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAPKADAAQAAAABAAAAPAAAAACL3+lcAAADhElEQVRoBe1bW08TQRQ+s70shWKlIKRyETHqgw/GoCHRF2+JiYlvgtHEX+ErDzz45A8RjfGZB9FoiNEH8J4Y0QgJUBHs2lIuS7e745mFLrRcBHbaHu1OQnZ2Zueb88139pzt7sAAy+LjrhY9a97jwM8Dh5hoK0P5zHzsTrR7eKCYc7NVsu8559FiTrQTbMaAc4C70Z5rfYz1WTsZs9trmPbw9H0ke3O3A4t6PWODQRa6VdszNCt7HsV2Y9mobvE4v5zhi28Tj86cdQtVOJ4lHnSiF9EsDMAAYIPAuBv3jgOD53Xdw/2MMU6asFwZ2NOocviqIheUMhq/pPHvvRVEGMXgcN2/lSbRG8Nbdf0T7Zh9NtiJMeF4RSmM0VmpKMJC8oojzPiTK2Tz8IabUEJDxSnsEZbgNaQhPIVJyyPBOE9hCYtIGsJTmLQ8EozzFJawiKQhPIVJyyPBOE9hCYtIGsJTmLQ8EozzFJawiKQhPIVJyyPBuC2/PEjA3hHEy2cjedfhR3FQ1SCEaqqgtT0GtZGw0//6xTswTdM536xy7mLnZs1OGzmXFlsAdD0DvxNz8GHkCx6TjrEyKmVXOEfC7/dBU6wBLMuEpDYPS0u63TX+bQrq6vfb9VjrAeDmymv06alZMC0Lv50wiDU35mD+eiRDOBAIQPvRFttgy7Rg5NUnyGQMWFzQwUI3Vnw+ONTR7BCamU6sElaccU7nNhVyLi1sVXwKhPdVO2Yv67gRQFIhSbiQG5NopUSoQjP3fm5mTUinFmwABcN2MBjYO1jBSDL3sGEYMDY6Yd+XSW0ODCNrm9p0sMG+fwvs3vMpGcJZVDU+OZNHpL4hAh3H2vLa3J6QcWmRXqrxYUOtCuIuo5WS+JWC+MRPtxzzxpNRWFVVONV1wjYunZqHj29GcR8ih4mxOMRaGoHhgsgoZBReT0Y8Tkbqau2mLOZkfWl5fberOknCgpGqrkXmXABzxXR1MFnCZnZtt6EsdxacSRIWj5KpZNoR9L/Nw+NfJzEPI1kt7eThmnDIjtwOe5cVMlFa5OGpghQk4nL7kZUfFC55OsPJEM5ZtPYCIARt+AIgHKnJdUk5evu0pCwjYRCSUbqY61V5hC2Lb/8asJjLXWJswVXhjA+VeN6yTSe4Kr6A/zZaoJXNitJNrAmuCrswMAl+5ST+u0w//v0o3fylmklwQm7IUXD9A+qk+zB3H9CqAAAAAElFTkSuQmCC",
    archive: "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA39pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3NTNjNGM1Yi02OWM1LWQ4NDYtOGE1MS1kOGY0YzgxYTE3MTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDM0MjEyMDgxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDM0MjEyMDcxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmQyODExZTE1LWU4ODgtZGI0OS1hNWQzLWU3YWE2NWZiYmNmMyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBlNjc1YzU2LTFjNzgtZDY0NC05MDU2LTgwMzY5YjE5NDJjNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgIJ65EAAAKxSURBVHjarJe9ixUxEMBnsnH3VLA4LO4hWAlWWomNrXBoYfVqm7MWsfMvsBNthSssbOT+AEtBRbQRBBG9Vr1D5KrjvH1v38ZJMm8/8vYj2b3AMNlskvllMpnNonq3eQsUbEMOE9JAGgrdJcqpf94DUxTUy5UJtBQ9YEsCknEg44Inq+quUu2TV9qxAaK5aLJtaSrITWMgYBiErA0aA+Ea9YSQK+RDIaAFogdENrpvCAR0QEA7hGydJBSiatitQzuE7JzwJCCEc0qUL0AoxNKgC4HdENJrT8dAuOMcCOkdWEMhhHNcHQj5Y+815NSoZUGSLUiTZFwvJHOeuc+C+985nBaLVhUXv/q0050HBAYcsR4voeLFYx2iNxGNgVjfALh0DeBc9GglwHT1Zgrw5T3An1/N4wuzGkIIKxGJjEhH2kW2XoisP1++DrB2pnLcsR4O+t3VG56ZcIgnktN2pYcvnoCapbD+1O753/tTgDihD+5LA+GdikMhcBnt83T1NBBQXzw0HsMQCN3XnLAkgTxN4eDBtNwJakOs9AtJxb4Q2YwmiQHO3n1o488JwiOS9NjGliZ1IUTf6voC8/dXC1Gs2gnCGRn/9tGON3NhyLfAwxP/DgC+vyEP7D42S1acCxTXP5zfMYkqEvX7Qx6Sin22w8QisgNU6Qkp2i8xGkI+u/2c0ydh5nOWGQtF9uK41KZutTI6te9ILv6cc7irWiC83bzgdyVDjECJoMzrfNozp1H5p+KTgThqaFRhAKMgkAapPPRa3hyEQyDs57ABAsmEysIAhkAUxl0IIfn3LQsDCIfAZghxqrwRNUD05gFvCNf4Uou4/gPjQEj+S52MhxC87w6ESFb/okqIfT3tPV3x8YRxp5GYhSaP1qxGTpcoyu3QWr8zEvNYaQMTQN+Rtv4LMACE9zMBY9wq7AAAAABJRU5ErkJggg==",
    unknown: "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA39pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3NTNjNGM1Yi02OWM1LWQ4NDYtOGE1MS1kOGY0YzgxYTE3MTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RENBNDFBQzExQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RENBNDFBQzAxQ0ZCMTFFOEIyMEY5RDhCQkI2NjM3NkUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmQyODExZTE1LWU4ODgtZGI0OS1hNWQzLWU3YWE2NWZiYmNmMyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBlNjc1YzU2LTFjNzgtZDY0NC05MDU2LTgwMzY5YjE5NDJjNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt9lHVYAAAKoSURBVHjaxFdNaBQxFP4mTStWrEJR2ErRg1ZBsFCw4M9BD0UseBBUxB8U6128CgVBelChl0JRcG8iCu6t4sGDihYEEVEKFlFhD7UVPSii1W534ouZTjIzmW1mF3aW3XnZl5f3vuT9ZTwxvP8gBIrwUYAQIIoktfFEwKefb4xtfMT4Sm6WnkMMzCvCI+OM/noe7DRlzgvmmDG28RHjK7kCPYtMGQ8mcwDBQmZOIFhESQ4gWEJJk0Ewq5ImguBqsUwtg8o8kYIyjaRic66tFdh1GOgbANZ1q/T68RV4/xp4WgJmPiHMvSUdylqST19PXB0Q9twX0VyWvPYO4Ow1YEMPrB+/CpTGgCcl5zrBah513B1HL6Ub/7+zFuDIBWDHHmd38NSjjrtjYy/Q068M/f0NTIwDbx8DFdp112bgwDlgS58yMEjjqUm9voY7mFPQybmdh/ROJ+iYXz1QQKp/gPIUcOeKnu+mU1qx0ikw3QvRpl5t4N2zpMyqNVF3tDCn7ODh0deKfElHj0UD05RZvR44fVkb//wBWJhP6rG4I5qGy4GwyRS2AqdGgI5O3fUe3gpyPWW9AYInBLOA6NoGnLlO/m5XSquLwH1K0+kXwdrlQXCroAsI6fOTI9r4/E/g9jDw8U1sTW0Qhgsygth7gkCsVcZ/fafOfhH4Uk4BnA6CRWt6hr6wfZ8Oukc3gW/lunoHi+SlKwjOKfI7NYDp53U3ME/cGBTR+1rKPTDeF1x6h8MdkyUKRT3uaKCV81DYTA84BObu4zSm1ry4AEzezZZBhm6jFGc8Cd6qxrytoZNgkRaZBUS1oqhfacgdPLweLbVIV3e8vGfvC362gsYSO67HHQ0EJkve1ZsLgtlfGJoHQlfCnEDIGJjNEcScZJ+nibkcQMwQHfonwABt44Mm9+InJQAAAABJRU5ErkJggg=="
  };
  function u(e, t) {
    if (e)
      return D.base64Header + D.group;
    var n = t.split(".").pop().toLowerCase();
    return ".avi|.wmv|.mpeg|.mp4|.mov|.mkv|.flv|.f4v|.m4v|.rmvb|.rm|.3gp|.dat|.ts|.mts|.vob".indexOf(n) > -1 ? D.base64Header + D.video : ".mp3|.aac|.aiff|.amr|.m4p|.wav|.ogg|.raw|.dv".indexOf(n) > -1 ? D.base64Header + D.music : ".txt|.docx|.pptx|.xlsx".indexOf(n) > -1 ? D.base64Header + D.doc : ".exe|.ipa|.apk|.dmg|.bin|.pkg|.bat|.cmd|.com|.msi|.ins".indexOf(n) > -1 ? D.base64Header + D.soft : ".zip|.rar|.iso|.tgz|.tar".indexOf(n) > -1 ? D.base64Header + D.archive : ".png|.jpg|.bmp|.gif|.jpeg".indexOf(n) > -1 ? D.base64Header + D.image : D.base64Header + D.unknown
  }
  var A = null
    , l = {
    xlVersion: 0,
    tasks: null,
    pid: 0,
    fn: "",
    generateTemplateForNotInstallOrNeedToUpate: function(e) {
      var t = e.fn
        , i = e.isGroupTask
        , r = e.theme
        , o = e.thunderURL
        , a = e.isShowXmp
        , C = e.isBatch
        , s = u(i, t = null == t || "" === t ? o.split("?")[0] : t.split("?")[0])
        , B = '<p class="xl_top_warning"><i class="icon_xl_warn icon_xl_success"></i>\u5df2\u83b7\u5f97\u4e0b\u8f7d\u94fe\u63a5</p>';
      "need_to_install_xmp" === r && (B = '<p class="xl_top_warning"><i class="icon_xl_warn icon_xl_success"></i>\u5df2\u83b7\u5f97\u89c6\u9891\u4fe1\u606f</p>');
      var D = "\u5b89\u88c5\u8fc5\u96f711\u5f00\u59cb\u4e0b\u8f7d";
      "need_to_update_on_win" === r && (B = '<p class="xl_top_warning"><i class="icon_xl_warn icon_xl_error"></i>\u65e7\u7248\u8fc5\u96f7\u65e0\u6cd5\u83b7\u5f97\u4e0b\u8f7d\u94fe\u63a5</p>',
      D = "\u5347\u7ea7\u8fc5\u96f711&nbsp;&nbsp;\u5f00\u59cb\u4e0b\u8f7d"),
      "need_to_install_xmp" === r && (D = "\u5b89\u88c5\u8fc5\u96f7\u5f71\u97f3 \u5f00\u59cb\u64ad\u653e");
      var A = "";
      "need_to_install_xmp" === r ? A = '<div class="xl_wp_downmkv"><p class="xl_tip_downmkv" id="js_xl_manual_download_prompt" style = "font-size: 12px">\u5982\u60a8\u5df2\u5b89\u88c5\u8fc5\u96f7\u6216\u8005\u8fc5\u96f7\u5f71\u97f3<a href="javascript:;" class="link" id="js_xl_manual_lunach_xmp">\u70b9\u51fb\u8fd9\u91cc\u5f00\u59cb\u64ad\u653e</a></p>  <div class="xl_downmkv_tip">                 <p style = "font-size: 12px">\u5982\u672a\u5b89\u88c5\u8fc5\u96f711\u6216\u8fc5\u96f7\u5f71\u97f3<br>\u70b9\u51fb\u5c06\u65e0\u6548</p>               </div>            </div> ' : "need_to_update_on_win" !== r && (A = !1 === i && !0 !== C ? '<p class="xl_tip_downmkv" id="js_xl_manual_download_prompt" style = "font-size: 12px">\u5982\u60a8\u5df2\u5b89\u88c5\u8fc5\u96f7<a href="' + (o || "javascript:") + '" class="link" id="js_xl_manual_download_btn">\u70b9\u51fb\u8fd9\u91cc\u5f00\u59cb\u4e0b\u8f7d</a></p>' : '<div class="xl_wp_downmkv">              <p class="xl_tip_downmkv" style = "font-size: 12px">\u5982\u60a8\u5df2\u7ecf\u5b89\u88c5\u8fc5\u96f711<a style = "font-size: 12px" href="thunderx://QUEtUnVuVGh1bmRlckFuZFF1aXQgLVN0YXJ0U291cmNlOlRodW5kZXJVbmlvbl9Qcm90b2NhbFpaCg==" class="js-xl-link link" id="js_xl_manual_download_btn">\u70b9\u51fb\u8fd9\u91cc\u5f00\u59cb\u4e0b\u8f7d</a></p>              <div class="xl_downmkv_tip">                 <p style = "font-size: 12px">\u5982\u672a\u5b89\u88c5\u6700\u65b0\u7248\u8fc5\u96f711<br>\u70b9\u51fb\u5c06\u65e0\u6548</p>               </div>            </div> ');
      var l = ""
        , c = 0;
      if (a)
        c = 408,
        l = '        <div class="xl_video_bot_pop">          <div class="xl_wp_download" style="margin-bottom: 20px">            <div class="xl_img_download"><img src="' + s + '" width="100%" height="100%" alt=""></div>            <p class="xl_info_download" id="js_xl_filename">' + t + '            </p>          </div>          <div style="margin:0 0 0 -8px;font-size:0px">            <div class="xl_bot_item">               <div class="xl-icon-wrap">                   <span class="xl_production xlx"/>                   <span class="xl_production_name">\u8fc5\u96f711</span>               </div>               <p class="xl_pop_download"><a class="xl_pop_btn_link" clickid="windowbtn_install" id="js_xl_download_btn"  role="button">\u4e0b\u8f7d\u5ba2\u6237\u7aef</a><p>               <p class="xl_pop_installed">\u5df2\u5b89\u88c5\u8fc5\u96f711</p>               <a class="xlx_pop_play"  id="js_xl_manual_download_prompt" href="' + (o || "javascript:") + '" class="link" id="js_xl_manual_download_btn"><img class="xlx_pop_play_icon" src="' + n(31) + '">\u5f00\u59cb\u4e0b\u8f7d</a>            </div>            <div class="xl_bot_item">               <div class="xl-icon-wrap">                   <span class="xl_production xmp"/>                   <span class="xl_production_name">\u8fc5\u96f7\u5f71\u97f3</span>               </div>               <p class="xl_pop_download"><a class="xl_pop_btn_link" id="js_xmp_download_btn" id="js_xmp_download_btn">\u4e0b\u8f7d\u5ba2\u6237\u7aef</a><p>               <p class="xl_pop_installed">\u5df2\u6709\u8fc5\u96f7\u5f71\u97f3</p>               <a title="\u5982\u672a\u5b89\u88c5\u8fc5\u96f7\u5f71\u97f36.0\u4ee5\u4e0a\u7248\u672c\uff0c\u65e0\u6cd5\u8fdb\u884c\u64ad\u653e" class="xlx_pop_play" id="js_xmp_manual_download_btn"><img class="xlx_pop_play_icon"  src="' + n(32) + '">\u7acb\u5373\u64ad\u653e</a>            </div>            <div class="xl_bot_item">               <div class="xl-icon-wrap">                   <span class="xl_production sl"/>                   <span class="xl_production_name">\u624b\u673a\u8fc5\u96f7</span>               </div>               <div class="xl_pop_download"><a class="xl_pop_btn_link" style="background:#4B87FF"><img style="vertical-align: middle;" class="xlx_pop_play_icon" src="' + n(33) + '">\u626b\u7801\u4e0b\u8f7d</a>                <div class="xl_downapp_tip">                    <div class="xl_img_code" id="js_xl_popup_qrcode" style="padding:10px"> </div>                </div>               </div>            </div>          </div>        </div>',
        E.reportSend("pc_qrcode_show", {
          qr_from: "auto"
        }),
        j_xunlei_q("body").undelegate(".tip_app");
      else if ("need_to_install_xmp" === r) {
        l = '        <div class="xl_bot_pop">          <div class="xl_wp_download">            <div class="xl_img_download"><img src="' + s + '" width="100%" height="100%" alt=""></div>            <p class="xl_info_download" style="text-align:left" x-ms-format-detection="none">' + t + '            </p>          </div>          <a href="http://xmp.down.sandai.net/xmp/XMPSetup6.0.10.488xl.exe" target="_blank" class="xl_btn btn_download" id="js_xmp_download_btn"><i class="icon_xmp_logo"></i><span>' + D + '            </span></a>      <div class="xl_bot_tip">            <div class="xl_wp_downapp">' + '<p class="tip_app" style = "font-size: 12px"><i class="icon_xl_phone"></i><span style="color:black;" class="tip_mobile_download">\u624b\u673a\u4e0b\u8f7d</span></p> <div class="xl_downapp_tip" style="top:40px;margin-left: -63px;"><div  class="xl_img_code" id="js_xl_popup_qrcode" style="padding: 20px"> </div></div>' + " </div>" + A + " </div></div>    </div>",
        c = 325,
        j_xunlei_q("body").delegate(".tip_app", "mouseenter", function() {
          E.reportSend("pc_qrcode_show", {
            qr_from: "hover"
          })
        })
      } else {
        l = '        <div class="xl_video_bot_pop"><div class="xl_wp_download" style="margin-bottom: 20px">            <div class="xl_img_download"><img src="' + s + '" width="100%" height="100%" alt=""></div>            <p class="xl_info_download" id="js_xl_filename">' + t + '            </p>          </div>          <a href="javascript:;" class="xl_btn btn_download" id="js_xl_download_btn"><i class="icon_xl_logo"></i><span>' + D + '            </span></a>      <div class="xl_bot_tip">            <div class="xl_wp_downapp">' + '<p class="tip_app" style = "font-size: 12px"><i class="icon_xl_phone"></i><span style="color:black;" class="tip_mobile_download">\u624b\u673a\u4e0b\u8f7d</span></p> <div class="xl_downapp_tip" style="top:40px;margin-left: -63px;"><div  class="xl_img_code" id="js_xl_popup_qrcode" style="padding: 20px"> </div></div>' + " </div>" + A + " </div></div>    </div>",
        c = 325,
        j_xunlei_q("body").delegate(".tip_app", "mouseenter", function() {
          E.reportSend("pc_qrcode_show", {
            qr_from: "hover"
          })
        })
      }
      return '<div id="js_xl_popup_template" style="position: fixed; width:100%;height:100%; top:0;left:0;"><div class="xl_pop_tip" style="height:' + c + 'px" >    <div class="xl_main_tip">        <div class="xl_top_pop">            <div class="xl_head_pop">                <h3 class="xl_tit" style="text-align:left" >\u4e0b\u8f7d\u63d0\u793a</h3>                <div class="xl_wp_downjs">                    <a  href="https://open.thunderurl.com/#/" target="_blank" class="xl_btn_downjs"><i></i></a>                    <div class="xl_wp_downjs_tip">                        <p>\u70b9\u51fb\u4e86\u89e3\u201c\u8fc5\u96f7\u4e0b\u8f7dJS-SDK\u201d </p>                    </div>                </div>                <a href="javascript:;" class="xl_btn_clo hide_txt" id="js_xl_close_btn_of_not_install" clickid="windowclose">\u5173\u95ed<i></i></a>            </div>' + B + "        </div>" + l + "  </div>"
    },
    templateForOldBrowser: '<div class="xl_pop_tip xl_pop_orev" id="js_xl_popup_template_old_browser">  <div class="xl_main_tip">      <div class="xl_top_pop">          <div class="xl_head_pop">              <h3 class="xl_tit">\u8fc5\u96f7\u63d0\u793a</h3>              <a href="javascript:;" class="xl_btn_clo hide_txt" id="js_xl_close_btn_of_not_install" clickid="windowclose">\u5173\u95ed<i></i></a>          </div>          <p class="xl_top_warning"><i class="icon_xl_warn icon_xl_browser"></i><span>\u60a8\u6b63\u5728\u4f7f\u7528\u7684\u6d4f\u89c8\u5668\u7248\u672c\u8f83\u65e7\uff0c \u4e0d\u652f\u6301\u8fc5\u96f7\u6279\u91cf\u4e0b\u8f7d</span></p>      </div>      <div class="xl_bot_pop">          <p class="xl_pop_suggest">\u5efa\u8bae\u60a8\u4f7f\u7528Chrome\u6d4f\u89c8\u5668\uff0c\u6216\u4f7f\u7528360\u6d4f\u89c8\u5668\u3001 QQ\u6d4f\u89c8\u5668\u7b49Chrome\u5185\u6838\u7684\u6d4f\u89c8\u5668</p>          <a href="javascript:;" class="xl_btn btn_know" id="js_xl_iKnown_btn">\u6211\u77e5\u9053\u4e86</a>      </div>  </div></div>',
    templateForOldSystem: '<div class="xl_pop_tip xl_pop_orev2" id="js_xl_popup_template_old_system">  <div class="xl_main_tip">      <div class="xl_top_pop">          <div class="xl_head_pop">              <h3 class="xl_tit">\u8fc5\u96f7\u63d0\u793a</h3>              <a href="javascript:;" class="xl_btn_clo hide_txt" id="js_xl_close_btn_of_not_install" clickid="windowclose">\u5173\u95ed<i></i></a>          </div>          <p class="xl_top_warning"><i class="icon_xl_warn icon_xl_batch"></i><span>\u60a8\u6b63\u5728\u4f7f\u7528\u7684\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c\u8001\u65e7\uff0c \u6682\u4e0d\u652f\u6301\u8fc5\u96f7\u6279\u91cf\u4e0b\u8f7d</span></p>      </div>      <div class="xl_bot_pop">          <a href="javascript:;" class="xl_btn btn_know" id="js_xl_iKnown_btn">\u6211\u77e5\u9053\u4e86</a>      </div>  </div></div>',
    popup: function(e, t, n, r) {
      if (l.hidnAllPopup(),
      "old_browser_on_win" === e)
        alert("\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6b64\u529f\u80fd\uff0c\u5efa\u8bae\u60a8\u4f7f\u7528Chrome\u6d4f\u89c8\u5668\uff0c\u6216\u4f7f\u7528360\u6d4f\u89c8\u5668\u3001 QQ\u6d4f\u89c8\u5668\u7b49Chrome\u5185\u6838\u7684\u6d4f\u89c8\u5668");
      else if ("old_system_on_win" === e)
        alert("\u60a8\u6b63\u5728\u4f7f\u7528\u7684\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c\u8001\u65e7\uff0c \u6682\u4e0d\u652f\u6301\u8fc5\u96f7\u6279\u91cf\u4e0b\u8f7d");
      else {
        var a = function(a) {
          var C = "";
          "string" == typeof t ? C = t : t && t.getAttribute(i) && (C = t.getAttribute(i));
          var s = l.generateTemplateForNotInstallOrNeedToUpate({
            fn: l.fn,
            isGroupTask: r,
            theme: e,
            thunderURL: t,
            isShowXmp: a,
            isBatch: n
          });
          j_xunlei_q("body").append(s),
          "need_to_update_on_win" === e ? j_xunlei_q("#js_xl_download_btn").attr("clickid", "window_pop_update") : j_xunlei_q("#js_xl_download_btn").attr("clickid", "windowbtn_install"),
          j_xunlei_q("#js_xl_popup_template").css("z-Index", 99999);
          var u = 90;
          D && (u = 70);
          try {
            o.createQrcode("js_xl_popup_qrcode", {
              download: C,
              size: u
            })
          } catch (e) {}
          var A = "install";
          "need_to_update_on_win" === e && (A = "update"),
          E.reportSend("page_pop", {
            clickid: "windowpc",
            if_qr_code: 1,
            pop_type: A,
            is_video_file: D ? 1 : 0
          }),
          j_xunlei_q("#js_xmp_download_btn").bind("click", function() {
            l.downloadXmp(l.pid);
            var e = j_xunlei_q("#js_xmp_download_btn").attr("clickid");
            return void 0 === e && (e = "window_pop_downloadxmp"),
            E.reportSend("page_click", {
              clickid: e,
              sPid: l.pid,
              tasktype: n ? "batchtask" : "singletask",
              is_video_file: D ? 1 : 0
            }),
            l.hidnAllPopup(),
            !1
          }),
          j_xunlei_q("#js_xmp_manual_download_btn").bind("click", function() {
            try {
              if (n)
                B({
                  tasks: l.tasks
                });
              else {
                var e = j_xunlei_q("#js_xl_filename").text()
                  , t = j_xunlei_q("#js_xl_manual_download_prompt").attr("href");
                B({
                  tasks: [{
                    name: e,
                    url: t
                  }]
                })
              }
              E.reportSend("page_click", {
                clickid: "window_pop_play_now",
                sPid: l.pid,
                tasktype: n ? "batchtask" : "singletask",
                is_video_file: D ? 1 : 0
              })
            } catch (e) {
              alert("\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6b64\u529f\u80fd\uff0c\u5efa\u8bae\u60a8\u4f7f\u7528Chrome\u6d4f\u89c8\u5668\uff0c\u6216\u4f7f\u7528360\u6d4f\u89c8\u5668\u3001 QQ\u6d4f\u89c8\u5668\u7b49Chrome\u5185\u6838\u7684\u6d4f\u89c8\u5668")
            }
          })
        }
          , C = l.fn.split("?")[0].split(".").pop().toLowerCase()
          , D = j_xunlei_q.inArray(C, ["avi", "rmvb", "rm", "divx", "mpg", "mpeg", "wmv", "mp4", "mkv"]) > -1
          , u = !1;
        l.xlVersion ? ((s(l.xlVersion, "10.1.1.0") > 0 || s(l.xlVersion, "9.0.0.0") < 0) && (u = D && "need_to_install_xmp" !== e),
        a(u)) : a(u = D && "need_to_install_xmp" !== e)
      }
    },
    hidnAllPopup: function() {
      j_xunlei_q("#js_xl_popup_template").remove(),
      j_xunlei_q("#js_xl_popup_template_old_system").remove(),
      j_xunlei_q("#js_xl_popup_template_old_browser").remove(),
      j_xunlei_q("#js_xmp_manual_download_btn").unbind("click"),
      j_xunlei_q("#js_xmp_download_btn").unbind("click")
    },
    copyText: function(e) {
      if (!("IE" === a() && C.getIEVersion() < 9)) {
        var t = n(11);
        t.isSupported() && (null != A && A.destroy(),
        A = new t(".btn_download, .js-xl-link",{
          text: function() {
            return e
          }
        }))
      }
    },
    downloadXl: function(e) {
      if (void 0 !== l.thunderInstallPack && /^\s*https?:\/\/(.+?\.)?down\.sandai\.net/gi.test(l.thunderInstallPack))
        top.location.href = l.thunderInstallPack;
      else {
        var t = r(e);
        top.location.href = t
      }
    },
    downloadXmp: function(e) {
      top.location.href = "http://xmp.down.sandai.net/xmp/XMPSetup.exe"
    },
    init: function(e) {
      l.pid = e,
      j_xunlei_q("body").delegate("#js_xl_download_btn", "click", function() {
        setTimeout(function() {
          l.downloadXl(e);
          var t = j_xunlei_q("#js_xl_download_btn").attr("clickid");
          return void 0 === t && (t = "windowbtn_install"),
          E.reportSend("page_click", {
            clickid: t
          }),
          l.hidnAllPopup(),
          !1
        }, 0)
      }),
      j_xunlei_q("body").delegate("#js_xl_close_btn_of_not_install", "click", function() {
        return l.hidnAllPopup(),
        E.reportSend("page_click", {
          clickid: "windowclose"
        }),
        !1
      }),
      j_xunlei_q("body").delegate("#js_xl_iKnown_btn", "click", function() {
        l.hidnAllPopup()
      }),
      j_xunlei_q("body").delegate("#js_xl_manual_download_btn", "click", function() {
        E.reportSend("page_click", {
          clickid: "window_pop_downloadnow"
        })
      })
    },
    openComfirm: function(e) {
      var t = e.contentHtml
        , n = (e.cancelText,
      e.comfirmText,
      e.cancelHandler)
        , i = e.comfirmHandler
        , r = document.createElement("div");
      r.innerHTML = t,
      document.body.appendChild(r.childNodes[1]),
      j_xunlei_q(".xl_ios_comfirm_wrapper .closeBtn").one("click", function(e) {
        "function" == typeof n && (n(e),
        j_xunlei_q(".xl_ios_comfirm_wrapper").remove())
      }),
      j_xunlei_q(".xl_ios_comfirm_wrapper .save").one("click", function(e) {
        "function" == typeof n && (j_xunlei_q(".xl_comfirm_wrapper").remove(),
        j_xunlei_q(".xl_ios_comfirm_wrapper").remove(),
        i(e))
      })
    }
  };
  t.Dialog = l,
  t.getFieIconBase64Data = u
}
, function(e, t, n) {
  var i = n(8)
    , r = navigator.userAgent.toLowerCase()
    , o = /\b(ipad|iphone|ipod)\b.*? os ([\d_]+)/.test(r)
    , E = /\bandroid([^;]+)/.test(r)
    , a = /mac os/.test(r)
    , C = function() {
    var e = "pc";
    o ? e = "ios" : E ? e = "android" : a && (e = "mac");
    return e
  }();
  xla = window.xla || (window.xla = []),
  xla.push({
    type: "globalExtData",
    data: {
      clientType: C,
      sourceType: "lianmeng"
    }
  }),
  xla.push({
    type: "config",
    appid: 20021,
    secret: "a6160ea5292629d5fe23e642d5b5ae43"
  });
  var s = document.createElement("script");
  s.type = "text/javascript",
  s.async = !0,
  s.src = "//res-etl-ssl.xunlei.com/v1.0.0/xla.min.js";
  var B = document.getElementsByTagName("script")[0];
  B.parentNode.insertBefore(s, B);
  t.reportSend = function(e, t) {
    (t = t || {}).sPid = t.sPid || i.pid,
    "page_click" === e && (t.click_url = t.click_url || "javascript:;"),
    xla.push({
      type: "event",
      category: "page_event",
      action: e || "",
      extdata: t
    })
  }
}
, function(e, t) {
  function n(e) {
    var t = e.toString(16);
    t = (t = "000" + t.toUpperCase()).substr(t.length - 4);
    var n = "00A4,00A7,00A8,00B0,00B1,00B7,00D7,00E0,00E1,00E8,00E9,00EA,00EC,00ED,00F2,00F3,00F7,00F9,00FA,00FC,0101,0113,011B,012B,014D,016B,01CE,01D0,01D2,01D4,01D6,01D8,01DA,01DC,02C7,02C9,0391,0392,0393,0394,0395,0396,0397,0398,0399,039A,039B,039C,039D,039E,039F,03A0,03A1,03A3,03A4,03A5,03A6,03A7,03A8,03A9,03B1,03B2,03B3,03B4,03B5,03B6,03B7,03B8,03B9,03BA,03BB,03BC,03BD,03BE,03BF,03C0,03C1,03C3,03C4,03C5,03C6,03C7,03C8,03C9,0401,0410,0411,0412,0413,0414,0415,0416,0417,0418,0419,041A,041B,041C,041D,041E,041F,0420,0421,0422,0423,0424,0425,0426,0427,0428,0429,042A,042B,042C,042D,042E,042F,0430,0431,0432,0433,0434,0435,0436,0437,0438,0439,043A,043B,043C,043D,043E,043F,0440,0441,0442,0443,0444,0445,0446,0447,0448,0449,044A,044B,044C,044D,044E,044F,0451,2014,2016,2018,2019,201C,201D,2026,2030,2032,2033,203B,2103,2116,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,216A,216B,2190,2191,2192,2193,2208,220F,2211,221A,221D,221E,2220,2225,2227,2228,2229,222A,222B,222E,2234,2235,2236,2237,223D,2248,224C,2260,2261,2264,2265,226E,226F,2299,22A5,2312,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2474,2475,2476,2477,2478,2479,247A,247B,247C,247D,247E,247F,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,248A,248B,248C,248D,248E,248F,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,249A,249B,2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,250A,250B,250C,250D,250E,250F,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,251A,251B,251C,251D,251E,251F,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,252A,252B,252C,252D,252E,252F,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,253A,253B,253C,253D,253E,253F,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,254A,254B,25A0,25A1,25B2,25B3,25C6,25C7,25CB,25CE,25CF,2605,2606,2640,2642,3000,3001,3002,3003,3005,3008,3009,300A,300B,300C,300D,300E,300F,3010,3011,3013,3014,3015,3016,3017,3041,3042,3043,3044,3045,3046,3047,3048,3049,304A,304B,304C,304D,304E,304F,3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,305A,305B,305C,305D,305E,305F,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,306A,306B,306C,306D,306E,306F,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,307A,307B,307C,307D,307E,307F,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089,308A,308B,308C,308D,308E,308F,3090,3091,3092,3093,30A1,30A2,30A3,30A4,30A5,30A6,30A7,30A8,30A9,30AA,30AB,30AC,30AD,30AE,30AF,30B0,30B1,30B2,30B3,30B4,30B5,30B6,30B7,30B8,30B9,30BA,30BB,30BC,30BD,30BE,30BF,30C0,30C1,30C2,30C3,30C4,30C5,30C6,30C7,30C8,30C9,30CA,30CB,30CC,30CD,30CE,30CF,30D0,30D1,30D2,30D3,30D4,30D5,30D6,30D7,30D8,30D9,30DA,30DB,30DC,30DD,30DE,30DF,30E0,30E1,30E2,30E3,30E4,30E5,30E6,30E7,30E8,30E9,30EA,30EB,30EC,30ED,30EE,30EF,30F0,30F1,30F2,30F3,30F4,30F5,30F6,3105,3106,3107,3108,3109,310A,310B,310C,310D,310E,310F,3110,3111,3112,3113,3114,3115,3116,3117,3118,3119,311A,311B,311C,311D,311E,311F,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,4E00,4E01,4E03,4E07,4E08,4E09,4E0A,4E0B,4E0C,4E0D,4E0E,4E10,4E11,4E13,4E14,4E15,4E16,4E18,4E19,4E1A,4E1B,4E1C,4E1D,4E1E,4E22,4E24,4E25,4E27,4E28,4E2A,4E2B,4E2C,4E2D,4E30,4E32,4E34,4E36,4E38,4E39,4E3A,4E3B,4E3D,4E3E,4E3F,4E43,4E45,4E47,4E48,4E49,4E4B,4E4C,4E4D,4E4E,4E4F,4E50,4E52,4E53,4E54,4E56,4E58,4E59,4E5C,4E5D,4E5E,4E5F,4E60,4E61,4E66,4E69,4E70,4E71,4E73,4E7E,4E86,4E88,4E89,4E8B,4E8C,4E8D,4E8E,4E8F,4E91,4E92,4E93,4E94,4E95,4E98,4E9A,4E9B,4E9F,4EA0,4EA1,4EA2,4EA4,4EA5,4EA6,4EA7,4EA8,4EA9,4EAB,4EAC,4EAD,4EAE,4EB2,4EB3,4EB5,4EBA,4EBB,4EBF,4EC0,4EC1,4EC2,4EC3,4EC4,4EC5,4EC6,4EC7,4EC9,4ECA,4ECB,4ECD,4ECE,4ED1,4ED3,4ED4,4ED5,4ED6,4ED7,4ED8,4ED9,4EDD,4EDE,4EDF,4EE1,4EE3,4EE4,4EE5,4EE8,4EEA,4EEB,4EEC,4EF0,4EF2,4EF3,4EF5,4EF6,4EF7,4EFB,4EFD,4EFF,4F01,4F09,4F0A,4F0D,4F0E,4F0F,4F10,4F11,4F17,4F18,4F19,4F1A,4F1B,4F1E,4F1F,4F20,4F22,4F24,4F25,4F26,4F27,4F2A,4F2B,4F2F,4F30,4F32,4F34,4F36,4F38,4F3A,4F3C,4F3D,4F43,4F46,4F4D,4F4E,4F4F,4F50,4F51,4F53,4F55,4F57,4F58,4F59,4F5A,4F5B,4F5C,4F5D,4F5E,4F5F,4F60,4F63,4F64,4F65,4F67,4F69,4F6C,4F6F,4F70,4F73,4F74,4F76,4F7B,4F7C,4F7E,4F7F,4F83,4F84,4F88,4F89,4F8B,4F8D,4F8F,4F91,4F94,4F97,4F9B,4F9D,4FA0,4FA3,4FA5,4FA6,4FA7,4FA8,4FA9,4FAA,4FAC,4FAE,4FAF,4FB5,4FBF,4FC3,4FC4,4FC5,4FCA,4FCE,4FCF,4FD0,4FD1,4FD7,4FD8,4FDA,4FDC,4FDD,4FDE,4FDF,4FE1,4FE3,4FE6,4FE8,4FE9,4FEA,4FED,4FEE,4FEF,4FF1,4FF3,4FF8,4FFA,4FFE,500C,500D,500F,5012,5014,5018,5019,501A,501C,501F,5021,5025,5026,5028,5029,502A,502C,502D,502E,503A,503C,503E,5043,5047,5048,504C,504E,504F,5055,505A,505C,5065,506C,5076,5077,507B,507E,507F,5080,5085,5088,508D,50A3,50A5,50A7,50A8,50A9,50AC,50B2,50BA,50BB,50CF,50D6,50DA,50E6,50E7,50EC,50ED,50EE,50F3,50F5,50FB,5106,5107,510B,5112,5121,513F,5140,5141,5143,5144,5145,5146,5148,5149,514B,514D,5151,5154,5155,5156,515A,515C,5162,5165,5168,516B,516C,516D,516E,5170,5171,5173,5174,5175,5176,5177,5178,5179,517B,517C,517D,5180,5181,5182,5185,5188,5189,518C,518D,5192,5195,5196,5197,5199,519B,519C,51A0,51A2,51A4,51A5,51AB,51AC,51AF,51B0,51B1,51B2,51B3,51B5,51B6,51B7,51BB,51BC,51BD,51C0,51C4,51C6,51C7,51C9,51CB,51CC,51CF,51D1,51DB,51DD,51E0,51E1,51E4,51EB,51ED,51EF,51F0,51F3,51F5,51F6,51F8,51F9,51FA,51FB,51FC,51FD,51FF,5200,5201,5202,5203,5206,5207,5208,520A,520D,520E,5211,5212,5216,5217,5218,5219,521A,521B,521D,5220,5224,5228,5229,522B,522D,522E,5230,5233,5236,5237,5238,5239,523A,523B,523D,523F,5240,5241,5242,5243,524A,524C,524D,5250,5251,5254,5256,525C,525E,5261,5265,5267,5269,526A,526F,5272,527D,527F,5281,5282,5288,5290,5293,529B,529D,529E,529F,52A0,52A1,52A2,52A3,52A8,52A9,52AA,52AB,52AC,52AD,52B1,52B2,52B3,52BE,52BF,52C3,52C7,52C9,52CB,52D0,52D2,52D6,52D8,52DF,52E4,52F0,52F9,52FA,52FE,52FF,5300,5305,5306,5308,530D,530F,5310,5315,5316,5317,5319,531A,531D,5320,5321,5323,5326,532A,532E,5339,533A,533B,533E,533F,5341,5343,5345,5347,5348,5349,534A,534E,534F,5351,5352,5353,5355,5356,5357,535A,535C,535E,535F,5360,5361,5362,5363,5364,5366,5367,5369,536B,536E,536F,5370,5371,5373,5374,5375,5377,5378,537A,537F,5382,5384,5385,5386,5389,538B,538C,538D,5395,5398,539A,539D,539F,53A2,53A3,53A5,53A6,53A8,53A9,53AE,53B6,53BB,53BF,53C1,53C2,53C8,53C9,53CA,53CB,53CC,53CD,53D1,53D4,53D6,53D7,53D8,53D9,53DB,53DF,53E0,53E3,53E4,53E5,53E6,53E8,53E9,53EA,53EB,53EC,53ED,53EE,53EF,53F0,53F1,53F2,53F3,53F5,53F6,53F7,53F8,53F9,53FB,53FC,53FD,5401,5403,5404,5406,5408,5409,540A,540C,540D,540E,540F,5410,5411,5412,5413,5415,5416,5417,541B,541D,541E,541F,5420,5421,5423,5426,5427,5428,5429,542B,542C,542D,542E,542F,5431,5432,5434,5435,5438,5439,543B,543C,543E,5440,5443,5446,5448,544A,544B,5450,5452,5453,5454,5455,5456,5457,5458,5459,545B,545C,5462,5464,5466,5468,5471,5472,5473,5475,5476,5477,5478,547B,547C,547D,5480,5482,5484,5486,548B,548C,548E,548F,5490,5492,5494,5495,5496,5499,549A,549B,549D,54A3,54A4,54A6,54A7,54A8,54A9,54AA,54AB,54AC,54AD,54AF,54B1,54B3,54B4,54B8,54BB,54BD,54BF,54C0,54C1,54C2,54C4,54C6,54C7,54C8,54C9,54CC,54CD,54CE,54CF,54D0,54D1,54D2,54D3,54D4,54D5,54D7,54D9,54DA,54DC,54DD,54DE,54DF,54E5,54E6,54E7,54E8,54E9,54EA,54ED,54EE,54F2,54F3,54FA,54FC,54FD,54FF,5501,5506,5507,5509,550F,5510,5511,5514,551B,5520,5522,5523,5524,5527,552A,552C,552E,552F,5530,5531,5533,5537,553C,553E,553F,5541,5543,5544,5546,5549,554A,5550,5555,5556,555C,5561,5564,5565,5566,5567,556A,556C,556D,556E,5575,5576,5577,5578,557B,557C,557E,5580,5581,5582,5583,5584,5587,5588,5589,558A,558B,558F,5591,5594,5598,5599,559C,559D,559F,55A7,55B1,55B3,55B5,55B7,55B9,55BB,55BD,55BE,55C4,55C5,55C9,55CC,55CD,55D1,55D2,55D3,55D4,55D6,55DC,55DD,55DF,55E1,55E3,55E4,55E5,55E6,55E8,55EA,55EB,55EC,55EF,55F2,55F3,55F5,55F7,55FD,55FE,5600,5601,5608,5609,560C,560E,560F,5618,561B,561E,561F,5623,5624,5627,562C,562D,5631,5632,5634,5636,5639,563B,563F,564C,564D,564E,5654,5657,5658,5659,565C,5662,5664,5668,5669,566A,566B,566C,5671,5676,567B,567C,5685,5686,568E,568F,5693,56A3,56AF,56B7,56BC,56CA,56D4,56D7,56DA,56DB,56DD,56DE,56DF,56E0,56E1,56E2,56E4,56EB,56ED,56F0,56F1,56F4,56F5,56F9,56FA,56FD,56FE,56FF,5703,5704,5706,5708,5709,570A,571C,571F,5723,5728,5729,572A,572C,572D,572E,572F,5730,5733,5739,573A,573B,573E,5740,5742,5747,574A,574C,574D,574E,574F,5750,5751,5757,575A,575B,575C,575D,575E,575F,5760,5761,5764,5766,5768,5769,576A,576B,576D,576F,5773,5776,5777,577B,577C,5782,5783,5784,5785,5786,578B,578C,5792,5793,579B,57A0,57A1,57A2,57A3,57A4,57A6,57A7,57A9,57AB,57AD,57AE,57B2,57B4,57B8,57C2,57C3,57CB,57CE,57CF,57D2,57D4,57D5,57D8,57D9,57DA,57DD,57DF,57E0,57E4,57ED,57EF,57F4,57F8,57F9,57FA,57FD,5800,5802,5806,5807,580B,580D,5811,5815,5819,581E,5820,5821,5824,582A,5830,5835,5844,584C,584D,5851,5854,5858,585E,5865,586B,586C,587E,5880,5881,5883,5885,5889,5892,5893,5899,589A,589E,589F,58A8,58A9,58BC,58C1,58C5,58D1,58D5,58E4,58EB,58EC,58EE,58F0,58F3,58F6,58F9,5902,5904,5907,590D,590F,5914,5915,5916,5919,591A,591C,591F,5924,5925,5927,5929,592A,592B,592D,592E,592F,5931,5934,5937,5938,5939,593A,593C,5941,5942,5944,5947,5948,5949,594B,594E,594F,5951,5954,5955,5956,5957,5958,595A,5960,5962,5965,5973,5974,5976,5978,5979,597D,5981,5982,5983,5984,5986,5987,5988,598A,598D,5992,5993,5996,5997,5999,599E,59A3,59A4,59A5,59A8,59A9,59AA,59AB,59AE,59AF,59B2,59B9,59BB,59BE,59C6,59CA,59CB,59D0,59D1,59D2,59D3,59D4,59D7,59D8,59DA,59DC,59DD,59E3,59E5,59E8,59EC,59F9,59FB,59FF,5A01,5A03,5A04,5A05,5A06,5A07,5A08,5A09,5A0C,5A11,5A13,5A18,5A1C,5A1F,5A20,5A23,5A25,5A29,5A31,5A32,5A34,5A36,5A3C,5A40,5A46,5A49,5A4A,5A55,5A5A,5A62,5A67,5A6A,5A74,5A75,5A76,5A77,5A7A,5A7F,5A92,5A9A,5A9B,5AAA,5AB2,5AB3,5AB5,5AB8,5ABE,5AC1,5AC2,5AC9,5ACC,5AD2,5AD4,5AD6,5AD8,5ADC,5AE0,5AE1,5AE3,5AE6,5AE9,5AEB,5AF1,5B09,5B16,5B17,5B32,5B34,5B37,5B40,5B50,5B51,5B53,5B54,5B55,5B57,5B58,5B59,5B5A,5B5B,5B5C,5B5D,5B5F,5B62,5B63,5B64,5B65,5B66,5B69,5B6A,5B6C,5B70,5B71,5B73,5B75,5B7A,5B7D,5B80,5B81,5B83,5B84,5B85,5B87,5B88,5B89,5B8B,5B8C,5B8F,5B93,5B95,5B97,5B98,5B99,5B9A,5B9B,5B9C,5B9D,5B9E,5BA0,5BA1,5BA2,5BA3,5BA4,5BA5,5BA6,5BAA,5BAB,5BB0,5BB3,5BB4,5BB5,5BB6,5BB8,5BB9,5BBD,5BBE,5BBF,5BC2,5BC4,5BC5,5BC6,5BC7,5BCC,5BD0,5BD2,5BD3,5BDD,5BDE,5BDF,5BE1,5BE4,5BE5,5BE8,5BEE,5BF0,5BF8,5BF9,5BFA,5BFB,5BFC,5BFF,5C01,5C04,5C06,5C09,5C0A,5C0F,5C11,5C14,5C15,5C16,5C18,5C1A,5C1C,5C1D,5C22,5C24,5C25,5C27,5C2C,5C31,5C34,5C38,5C39,5C3A,5C3B,5C3C,5C3D,5C3E,5C3F,5C40,5C41,5C42,5C45,5C48,5C49,5C4A,5C4B,5C4E,5C4F,5C50,5C51,5C55,5C59,5C5E,5C60,5C61,5C63,5C65,5C66,5C6E,5C6F,5C71,5C79,5C7A,5C7F,5C81,5C82,5C88,5C8C,5C8D,5C90,5C91,5C94,5C96,5C97,5C98,5C99,5C9A,5C9B,5C9C,5CA2,5CA3,5CA9,5CAB,5CAC,5CAD,5CB1,5CB3,5CB5,5CB7,5CB8,5CBD,5CBF,5CC1,5CC4,5CCB,5CD2,5CD9,5CE1,5CE4,5CE5,5CE6,5CE8,5CEA,5CED,5CF0,5CFB,5D02,5D03,5D06,5D07,5D0E,5D14,5D16,5D1B,5D1E,5D24,5D26,5D27,5D29,5D2D,5D2E,5D34,5D3D,5D3E,5D47,5D4A,5D4B,5D4C,5D58,5D5B,5D5D,5D69,5D6B,5D6C,5D6F,5D74,5D82,5D99,5D9D,5DB7,5DC5,5DCD,5DDB,5DDD,5DDE,5DE1,5DE2,5DE5,5DE6,5DE7,5DE8,5DE9,5DEB,5DEE,5DEF,5DF1,5DF2,5DF3,5DF4,5DF7,5DFD,5DFE,5E01,5E02,5E03,5E05,5E06,5E08,5E0C,5E0F,5E10,5E11,5E14,5E15,5E16,5E18,5E19,5E1A,5E1B,5E1C,5E1D,5E26,5E27,5E2D,5E2E,5E31,5E37,5E38,5E3B,5E3C,5E3D,5E42,5E44,5E45,5E4C,5E54,5E55,5E5B,5E5E,5E61,5E62,5E72,5E73,5E74,5E76,5E78,5E7A,5E7B,5E7C,5E7D,5E7F,5E80,5E84,5E86,5E87,5E8A,5E8B,5E8F,5E90,5E91,5E93,5E94,5E95,5E96,5E97,5E99,5E9A,5E9C,5E9E,5E9F,5EA0,5EA5,5EA6,5EA7,5EAD,5EB3,5EB5,5EB6,5EB7,5EB8,5EB9,5EBE,5EC9,5ECA,5ED1,5ED2,5ED3,5ED6,5EDB,5EE8,5EEA,5EF4,5EF6,5EF7,5EFA,5EFE,5EFF,5F00,5F01,5F02,5F03,5F04,5F08,5F0A,5F0B,5F0F,5F11,5F13,5F15,5F17,5F18,5F1B,5F1F,5F20,5F25,5F26,5F27,5F29,5F2A,5F2D,5F2F,5F31,5F39,5F3A,5F3C,5F40,5F50,5F52,5F53,5F55,5F56,5F57,5F58,5F5D,5F61,5F62,5F64,5F66,5F69,5F6A,5F6C,5F6D,5F70,5F71,5F73,5F77,5F79,5F7B,5F7C,5F80,5F81,5F82,5F84,5F85,5F87,5F88,5F89,5F8A,5F8B,5F8C,5F90,5F92,5F95,5F97,5F98,5F99,5F9C,5FA1,5FA8,5FAA,5FAD,5FAE,5FB5,5FB7,5FBC,5FBD,5FC3,5FC4,5FC5,5FC6,5FC9,5FCC,5FCD,5FCF,5FD0,5FD1,5FD2,5FD6,5FD7,5FD8,5FD9,5FDD,5FE0,5FE1,5FE4,5FE7,5FEA,5FEB,5FED,5FEE,5FF1,5FF5,5FF8,5FFB,5FFD,5FFE,5FFF,6000,6001,6002,6003,6004,6005,6006,600A,600D,600E,600F,6012,6014,6015,6016,6019,601B,601C,601D,6020,6021,6025,6026,6027,6028,6029,602A,602B,602F,6035,603B,603C,603F,6041,6042,6043,604B,604D,6050,6052,6055,6059,605A,605D,6062,6063,6064,6067,6068,6069,606A,606B,606C,606D,606F,6070,6073,6076,6078,6079,607A,607B,607C,607D,607F,6083,6084,6089,608C,608D,6092,6094,6096,609A,609B,609D,609F,60A0,60A3,60A6,60A8,60AB,60AC,60AD,60AF,60B1,60B2,60B4,60B8,60BB,60BC,60C5,60C6,60CA,60CB,60D1,60D5,60D8,60DA,60DC,60DD,60DF,60E0,60E6,60E7,60E8,60E9,60EB,60EC,60ED,60EE,60EF,60F0,60F3,60F4,60F6,60F9,60FA,6100,6101,6106,6108,6109,610D,610E,610F,6115,611A,611F,6120,6123,6124,6126,6127,612B,613F,6148,614A,614C,614E,6151,6155,615D,6162,6167,6168,6170,6175,6177,618B,618E,6194,619D,61A7,61A8,61A9,61AC,61B7,61BE,61C2,61C8,61CA,61CB,61D1,61D2,61D4,61E6,61F5,61FF,6206,6208,620A,620B,620C,620D,620E,620F,6210,6211,6212,6215,6216,6217,6218,621A,621B,621F,6221,6222,6224,6225,622A,622C,622E,6233,6234,6237,623D,623E,623F,6240,6241,6243,6247,6248,6249,624B,624C,624D,624E,6251,6252,6253,6254,6258,625B,6263,6266,6267,6269,626A,626B,626C,626D,626E,626F,6270,6273,6276,6279,627C,627E,627F,6280,6284,6289,628A,6291,6292,6293,6295,6296,6297,6298,629A,629B,629F,62A0,62A1,62A2,62A4,62A5,62A8,62AB,62AC,62B1,62B5,62B9,62BB,62BC,62BD,62BF,62C2,62C4,62C5,62C6,62C7,62C8,62C9,62CA,62CC,62CD,62CE,62D0,62D2,62D3,62D4,62D6,62D7,62D8,62D9,62DA,62DB,62DC,62DF,62E2,62E3,62E5,62E6,62E7,62E8,62E9,62EC,62ED,62EE,62EF,62F1,62F3,62F4,62F6,62F7,62FC,62FD,62FE,62FF,6301,6302,6307,6308,6309,630E,6311,6316,631A,631B,631D,631E,631F,6320,6321,6322,6323,6324,6325,6328,632A,632B,632F,6332,6339,633A,633D,6342,6343,6345,6346,6349,634B,634C,634D,634E,634F,6350,6355,635E,635F,6361,6362,6363,6367,6369,636D,636E,6371,6376,6377,637A,637B,6380,6382,6387,6388,6389,638A,638C,638E,638F,6390,6392,6396,6398,63A0,63A2,63A3,63A5,63A7,63A8,63A9,63AA,63AC,63AD,63AE,63B0,63B3,63B4,63B7,63B8,63BA,63BC,63BE,63C4,63C6,63C9,63CD,63CE,63CF,63D0,63D2,63D6,63DE,63E0,63E1,63E3,63E9,63EA,63ED,63F2,63F4,63F6,63F8,63FD,63FF,6400,6401,6402,6405,640B,640C,640F,6410,6413,6414,641B,641C,641E,6420,6421,6426,642A,642C,642D,6434,643A,643D,643F,6441,6444,6445,6446,6447,6448,644A,6452,6454,6458,645E,6467,6469,646D,6478,6479,647A,6482,6484,6485,6487,6491,6492,6495,6496,6499,649E,64A4,64A9,64AC,64AD,64AE,64B0,64B5,64B7,64B8,64BA,64BC,64C0,64C2,64C5,64CD,64CE,64D0,64D2,64D7,64D8,64DE,64E2,64E4,64E6,6500,6509,6512,6518,6525,652B,652E,652F,6534,6535,6536,6538,6539,653B,653E,653F,6545,6548,6549,654C,654F,6551,6555,6556,6559,655B,655D,655E,6562,6563,6566,656B,656C,6570,6572,6574,6577,6587,658B,658C,6590,6591,6593,6597,6599,659B,659C,659F,65A1,65A4,65A5,65A7,65A9,65AB,65AD,65AF,65B0,65B9,65BC,65BD,65C1,65C3,65C4,65C5,65C6,65CB,65CC,65CE,65CF,65D2,65D6,65D7,65E0,65E2,65E5,65E6,65E7,65E8,65E9,65EC,65ED,65EE,65EF,65F0,65F1,65F6,65F7,65FA,6600,6602,6603,6606,660A,660C,660E,660F,6613,6614,6615,6619,661D,661F,6620,6625,6627,6628,662D,662F,6631,6634,6635,6636,663C,663E,6641,6643,664B,664C,664F,6652,6653,6654,6655,6656,6657,665A,665F,6661,6664,6666,6668,666E,666F,6670,6674,6676,6677,667A,667E,6682,6684,6687,668C,6691,6696,6697,669D,66A7,66A8,66AE,66B4,66B9,66BE,66D9,66DB,66DC,66DD,66E6,66E9,66F0,66F2,66F3,66F4,66F7,66F9,66FC,66FE,66FF,6700,6708,6709,670A,670B,670D,6710,6714,6715,6717,671B,671D,671F,6726,6728,672A,672B,672C,672D,672F,6731,6734,6735,673A,673D,6740,6742,6743,6746,6748,6749,674C,674E,674F,6750,6751,6753,6756,675C,675E,675F,6760,6761,6765,6768,6769,676A,676D,676F,6770,6772,6773,6775,6777,677C,677E,677F,6781,6784,6787,6789,678B,6790,6795,6797,6798,679A,679C,679D,679E,67A2,67A3,67A5,67A7,67A8,67AA,67AB,67AD,67AF,67B0,67B3,67B5,67B6,67B7,67B8,67C1,67C3,67C4,67CF,67D0,67D1,67D2,67D3,67D4,67D8,67D9,67DA,67DC,67DD,67DE,67E0,67E2,67E5,67E9,67EC,67EF,67F0,67F1,67F3,67F4,67FD,67FF,6800,6805,6807,6808,6809,680A,680B,680C,680E,680F,6811,6813,6816,6817,681D,6821,6829,682A,6832,6833,6837,6838,6839,683C,683D,683E,6840,6841,6842,6843,6844,6845,6846,6848,6849,684A,684C,684E,6850,6851,6853,6854,6855,6860,6861,6862,6863,6864,6865,6866,6867,6868,6869,686B,6874,6876,6877,6881,6883,6885,6886,688F,6893,6897,68A2,68A6,68A7,68A8,68AD,68AF,68B0,68B3,68B5,68C0,68C2,68C9,68CB,68CD,68D2,68D5,68D8,68DA,68E0,68E3,68EE,68F0,68F1,68F5,68F9,68FA,68FC,6901,6905,690B,690D,690E,6910,6912,691F,6920,6924,692D,6930,6934,6939,693D,693F,6942,6954,6957,695A,695D,695E,6960,6963,6966,696B,696E,6971,6977,6978,6979,697C,6980,6982,6984,6986,6987,6988,6989,698D,6994,6995,6998,699B,699C,69A7,69A8,69AB,69AD,69B1,69B4,69B7,69BB,69C1,69CA,69CC,69CE,69D0,69D4,69DB,69DF,69E0,69ED,69F2,69FD,69FF,6A0A,6A17,6A18,6A1F,6A21,6A28,6A2A,6A2F,6A31,6A35,6A3D,6A3E,6A44,6A47,6A50,6A58,6A59,6A5B,6A61,6A65,6A71,6A79,6A7C,6A80,6A84,6A8E,6A90,6A91,6A97,6AA0,6AA9,6AAB,6AAC,6B20,6B21,6B22,6B23,6B24,6B27,6B32,6B37,6B39,6B3A,6B3E,6B43,6B46,6B47,6B49,6B4C,6B59,6B62,6B63,6B64,6B65,6B66,6B67,6B6A,6B79,6B7B,6B7C,6B81,6B82,6B83,6B84,6B86,6B87,6B89,6B8A,6B8B,6B8D,6B92,6B93,6B96,6B9A,6B9B,6BA1,6BAA,6BB3,6BB4,6BB5,6BB7,6BBF,6BC1,6BC2,6BC5,6BCB,6BCD,6BCF,6BD2,6BD3,6BD4,6BD5,6BD6,6BD7,6BD9,6BDB,6BE1,6BEA,6BEB,6BEF,6BF3,6BF5,6BF9,6BFD,6C05,6C06,6C07,6C0D,6C0F,6C10,6C11,6C13,6C14,6C15,6C16,6C18,6C19,6C1A,6C1B,6C1F,6C21,6C22,6C24,6C26,6C27,6C28,6C29,6C2A,6C2E,6C2F,6C30,6C32,6C34,6C35,6C38,6C3D,6C40,6C41,6C42,6C46,6C47,6C49,6C4A,6C50,6C54,6C55,6C57,6C5B,6C5C,6C5D,6C5E,6C5F,6C60,6C61,6C64,6C68,6C69,6C6A,6C70,6C72,6C74,6C76,6C79,6C7D,6C7E,6C81,6C82,6C83,6C85,6C86,6C88,6C89,6C8C,6C8F,6C90,6C93,6C94,6C99,6C9B,6C9F,6CA1,6CA3,6CA4,6CA5,6CA6,6CA7,6CA9,6CAA,6CAB,6CAD,6CAE,6CB1,6CB2,6CB3,6CB8,6CB9,6CBB,6CBC,6CBD,6CBE,6CBF,6CC4,6CC5,6CC9,6CCA,6CCC,6CD0,6CD3,6CD4,6CD5,6CD6,6CD7,6CDB,6CDE,6CE0,6CE1,6CE2,6CE3,6CE5,6CE8,6CEA,6CEB,6CEE,6CEF,6CF0,6CF1,6CF3,6CF5,6CF6,6CF7,6CF8,6CFA,6CFB,6CFC,6CFD,6CFE,6D01,6D04,6D07,6D0B,6D0C,6D0E,6D12,6D17,6D19,6D1A,6D1B,6D1E,6D25,6D27,6D2A,6D2B,6D2E,6D31,6D32,6D33,6D35,6D39,6D3B,6D3C,6D3D,6D3E,6D41,6D43,6D45,6D46,6D47,6D48,6D4A,6D4B,6D4D,6D4E,6D4F,6D51,6D52,6D53,6D54,6D59,6D5A,6D5C,6D5E,6D60,6D63,6D66,6D69,6D6A,6D6E,6D6F,6D74,6D77,6D78,6D7C,6D82,6D85,6D88,6D89,6D8C,6D8E,6D91,6D93,6D94,6D95,6D9B,6D9D,6D9E,6D9F,6DA0,6DA1,6DA3,6DA4,6DA6,6DA7,6DA8,6DA9,6DAA,6DAB,6DAE,6DAF,6DB2,6DB5,6DB8,6DBF,6DC0,6DC4,6DC5,6DC6,6DC7,6DCB,6DCC,6DD1,6DD6,6DD8,6DD9,6DDD,6DDE,6DE0,6DE1,6DE4,6DE6,6DEB,6DEC,6DEE,6DF1,6DF3,6DF7,6DF9,6DFB,6DFC,6E05,6E0A,6E0C,6E0D,6E0E,6E10,6E11,6E14,6E16,6E17,6E1A,6E1D,6E20,6E21,6E23,6E24,6E25,6E29,6E2B,6E2D,6E2F,6E32,6E34,6E38,6E3A,6E43,6E44,6E4D,6E4E,6E53,6E54,6E56,6E58,6E5B,6E5F,6E6B,6E6E,6E7E,6E7F,6E83,6E85,6E86,6E89,6E8F,6E90,6E98,6E9C,6E9F,6EA2,6EA5,6EA7,6EAA,6EAF,6EB1,6EB2,6EB4,6EB6,6EB7,6EBA,6EBB,6EBD,6EC1,6EC2,6EC7,6ECB,6ECF,6ED1,6ED3,6ED4,6ED5,6ED7,6EDA,6EDE,6EDF,6EE0,6EE1,6EE2,6EE4,6EE5,6EE6,6EE8,6EE9,6EF4,6EF9,6F02,6F06,6F09,6F0F,6F13,6F14,6F15,6F20,6F24,6F29,6F2A,6F2B,6F2D,6F2F,6F31,6F33,6F36,6F3E,6F46,6F47,6F4B,6F4D,6F58,6F5C,6F5E,6F62,6F66,6F6D,6F6E,6F72,6F74,6F78,6F7A,6F7C,6F84,6F88,6F89,6F8C,6F8D,6F8E,6F9C,6FA1,6FA7,6FB3,6FB6,6FB9,6FC0,6FC2,6FC9,6FD1,6FD2,6FDE,6FE0,6FE1,6FEE,6FEF,7011,701A,701B,7023,7035,7039,704C,704F,705E,706B,706C,706D,706F,7070,7075,7076,7078,707C,707E,707F,7080,7085,7089,708A,708E,7092,7094,7095,7096,7099,709C,709D,70AB,70AC,70AD,70AE,70AF,70B1,70B3,70B7,70B8,70B9,70BB,70BC,70BD,70C0,70C1,70C2,70C3,70C8,70CA,70D8,70D9,70DB,70DF,70E4,70E6,70E7,70E8,70E9,70EB,70EC,70ED,70EF,70F7,70F9,70FD,7109,710A,7110,7113,7115,7116,7118,7119,711A,7126,712F,7130,7131,7136,7145,714A,714C,714E,715C,715E,7164,7166,7167,7168,716E,7172,7173,7178,717A,717D,7184,718A,718F,7194,7198,7199,719F,71A0,71A8,71AC,71B3,71B5,71B9,71C3,71CE,71D4,71D5,71E0,71E5,71E7,71EE,71F9,7206,721D,7228,722A,722C,7230,7231,7235,7236,7237,7238,7239,723B,723D,723F,7247,7248,724C,724D,7252,7256,7259,725B,725D,725F,7261,7262,7266,7267,7269,726E,726F,7272,7275,7279,727A,727E,727F,7280,7281,7284,728A,728B,728D,728F,7292,729F,72AC,72AD,72AF,72B0,72B4,72B6,72B7,72B8,72B9,72C1,72C2,72C3,72C4,72C8,72CD,72CE,72D0,72D2,72D7,72D9,72DE,72E0,72E1,72E8,72E9,72EC,72ED,72EE,72EF,72F0,72F1,72F2,72F3,72F4,72F7,72F8,72FA,72FB,72FC,7301,7303,730A,730E,7313,7315,7316,7317,731B,731C,731D,731E,7321,7322,7325,7329,732A,732B,732C,732E,7331,7334,7337,7338,7339,733E,733F,734D,7350,7352,7357,7360,736C,736D,736F,737E,7384,7387,7389,738B,738E,7391,7396,739B,739F,73A2,73A9,73AB,73AE,73AF,73B0,73B2,73B3,73B7,73BA,73BB,73C0,73C2,73C8,73C9,73CA,73CD,73CF,73D0,73D1,73D9,73DE,73E0,73E5,73E7,73E9,73ED,73F2,7403,7405,7406,7409,740A,740F,7410,741A,741B,7422,7425,7426,7428,742A,742C,742E,7430,7433,7434,7435,7436,743C,7441,7455,7457,7459,745A,745B,745C,745E,745F,746D,7470,7476,7477,747E,7480,7481,7483,7487,748B,748E,7490,749C,749E,74A7,74A8,74A9,74BA,74D2,74DC,74DE,74E0,74E2,74E3,74E4,74E6,74EE,74EF,74F4,74F6,74F7,74FF,7504,750D,750F,7511,7513,7518,7519,751A,751C,751F,7525,7528,7529,752B,752C,752D,752F,7530,7531,7532,7533,7535,7537,7538,753A,753B,753E,7540,7545,7548,754B,754C,754E,754F,7554,7559,755A,755B,755C,7565,7566,756A,7572,7574,7578,7579,757F,7583,7586,758B,758F,7591,7592,7594,7596,7597,7599,759A,759D,759F,75A0,75A1,75A3,75A4,75A5,75AB,75AC,75AE,75AF,75B0,75B1,75B2,75B3,75B4,75B5,75B8,75B9,75BC,75BD,75BE,75C2,75C3,75C4,75C5,75C7,75C8,75C9,75CA,75CD,75D2,75D4,75D5,75D6,75D8,75DB,75DE,75E2,75E3,75E4,75E6,75E7,75E8,75EA,75EB,75F0,75F1,75F4,75F9,75FC,75FF,7600,7601,7603,7605,760A,760C,7610,7615,7617,7618,7619,761B,761F,7620,7622,7624,7625,7626,7629,762A,762B,762D,7630,7633,7634,7635,7638,763C,763E,763F,7640,7643,764C,764D,7654,7656,765C,765E,7663,766B,766F,7678,767B,767D,767E,7682,7684,7686,7687,7688,768B,768E,7691,7693,7696,7699,76A4,76AE,76B1,76B2,76B4,76BF,76C2,76C5,76C6,76C8,76CA,76CD,76CE,76CF,76D0,76D1,76D2,76D4,76D6,76D7,76D8,76DB,76DF,76E5,76EE,76EF,76F1,76F2,76F4,76F8,76F9,76FC,76FE,7701,7704,7707,7708,7709,770B,770D,7719,771A,771F,7720,7722,7726,7728,7729,772D,772F,7735,7736,7737,7738,773A,773C,7740,7741,7743,7747,7750,7751,775A,775B,7761,7762,7763,7765,7766,7768,776B,776C,7779,777D,777E,777F,7780,7784,7785,778C,778D,778E,7791,7792,779F,77A0,77A2,77A5,77A7,77A9,77AA,77AC,77B0,77B3,77B5,77BB,77BD,77BF,77CD,77D7,77DB,77DC,77E2,77E3,77E5,77E7,77E9,77EB,77EC,77ED,77EE,77F3,77F6,77F8,77FD,77FE,77FF,7800,7801,7802,7809,780C,780D,7811,7812,7814,7816,7817,7818,781A,781C,781D,781F,7823,7825,7826,7827,7829,782C,782D,7830,7834,7837,7838,7839,783A,783B,783C,783E,7840,7845,7847,784C,784E,7850,7852,7855,7856,7857,785D,786A,786B,786C,786D,786E,7877,787C,7887,7889,788C,788D,788E,7891,7893,7897,7898,789A,789B,789C,789F,78A1,78A3,78A5,78A7,78B0,78B1,78B2,78B3,78B4,78B9,78BE,78C1,78C5,78C9,78CA,78CB,78D0,78D4,78D5,78D9,78E8,78EC,78F2,78F4,78F7,78FA,7901,7905,7913,791E,7924,7934,793A,793B,793C,793E,7940,7941,7946,7948,7949,7953,7956,7957,795A,795B,795C,795D,795E,795F,7960,7962,7965,7967,7968,796D,796F,7977,7978,797A,7980,7981,7984,7985,798A,798F,799A,79A7,79B3,79B9,79BA,79BB,79BD,79BE,79C0,79C1,79C3,79C6,79C9,79CB,79CD,79D1,79D2,79D5,79D8,79DF,79E3,79E4,79E6,79E7,79E9,79EB,79ED,79EF,79F0,79F8,79FB,79FD,7A00,7A02,7A03,7A06,7A0B,7A0D,7A0E,7A14,7A17,7A1A,7A1E,7A20,7A23,7A33,7A37,7A39,7A3B,7A3C,7A3D,7A3F,7A46,7A51,7A57,7A70,7A74,7A76,7A77,7A78,7A79,7A7A,7A7F,7A80,7A81,7A83,7A84,7A86,7A88,7A8D,7A91,7A92,7A95,7A96,7A97,7A98,7A9C,7A9D,7A9F,7AA0,7AA5,7AA6,7AA8,7AAC,7AAD,7AB3,7ABF,7ACB,7AD6,7AD9,7ADE,7ADF,7AE0,7AE3,7AE5,7AE6,7AED,7AEF,7AF9,7AFA,7AFD,7AFF,7B03,7B04,7B06,7B08,7B0A,7B0B,7B0F,7B11,7B14,7B15,7B19,7B1B,7B1E,7B20,7B24,7B25,7B26,7B28,7B2A,7B2B,7B2C,7B2E,7B31,7B33,7B38,7B3A,7B3C,7B3E,7B45,7B47,7B49,7B4B,7B4C,7B4F,7B50,7B51,7B52,7B54,7B56,7B58,7B5A,7B5B,7B5D,7B60,7B62,7B6E,7B71,7B72,7B75,7B77,7B79,7B7B,7B7E,7B80,7B85,7B8D,7B90,7B94,7B95,7B97,7B9C,7B9D,7BA1,7BA2,7BA6,7BA7,7BA8,7BA9,7BAA,7BAB,7BAC,7BAD,7BB1,7BB4,7BB8,7BC1,7BC6,7BC7,7BCC,7BD1,7BD3,7BD9,7BDA,7BDD,7BE1,7BE5,7BE6,7BEA,7BEE,7BF1,7BF7,7BFC,7BFE,7C07,7C0B,7C0C,7C0F,7C16,7C1F,7C26,7C27,7C2A,7C38,7C3F,7C40,7C41,7C4D,7C73,7C74,7C7B,7C7C,7C7D,7C89,7C91,7C92,7C95,7C97,7C98,7C9C,7C9D,7C9E,7C9F,7CA2,7CA4,7CA5,7CAA,7CAE,7CB1,7CB2,7CB3,7CB9,7CBC,7CBD,7CBE,7CC1,7CC5,7CC7,7CC8,7CCA,7CCC,7CCD,7CD5,7CD6,7CD7,7CD9,7CDC,7CDF,7CE0,7CE8,7CEF,7CF8,7CFB,7D0A,7D20,7D22,7D27,7D2B,7D2F,7D6E,7D77,7DA6,7DAE,7E3B,7E41,7E47,7E82,7E9B,7E9F,7EA0,7EA1,7EA2,7EA3,7EA4,7EA5,7EA6,7EA7,7EA8,7EA9,7EAA,7EAB,7EAC,7EAD,7EAF,7EB0,7EB1,7EB2,7EB3,7EB5,7EB6,7EB7,7EB8,7EB9,7EBA,7EBD,7EBE,7EBF,7EC0,7EC1,7EC2,7EC3,7EC4,7EC5,7EC6,7EC7,7EC8,7EC9,7ECA,7ECB,7ECC,7ECD,7ECE,7ECF,7ED0,7ED1,7ED2,7ED3,7ED4,7ED5,7ED7,7ED8,7ED9,7EDA,7EDB,7EDC,7EDD,7EDE,7EDF,7EE0,7EE1,7EE2,7EE3,7EE5,7EE6,7EE7,7EE8,7EE9,7EEA,7EEB,7EED,7EEE,7EEF,7EF0,7EF1,7EF2,7EF3,7EF4,7EF5,7EF6,7EF7,7EF8,7EFA,7EFB,7EFC,7EFD,7EFE,7EFF,7F00,7F01,7F02,7F03,7F04,7F05,7F06,7F07,7F08,7F09,7F0B,7F0C,7F0D,7F0E,7F0F,7F11,7F12,7F13,7F14,7F15,7F16,7F17,7F18,7F19,7F1A,7F1B,7F1C,7F1D,7F1F,7F20,7F21,7F22,7F23,7F24,7F25,7F26,7F27,7F28,7F29,7F2A,7F2B,7F2C,7F2D,7F2E,7F2F,7F30,7F31,7F32,7F33,7F34,7F35,7F36,7F38,7F3A,7F42,7F44,7F45,7F50,7F51,7F54,7F55,7F57,7F58,7F5A,7F5F,7F61,7F62,7F68,7F69,7F6A,7F6E,7F71,7F72,7F74,7F79,7F7E,7F81,7F8A,7F8C,7F8E,7F94,7F9A,7F9D,7F9E,7F9F,7FA1,7FA4,7FA7,7FAF,7FB0,7FB2,7FB8,7FB9,7FBC,7FBD,7FBF,7FC1,7FC5,7FCA,7FCC,7FCE,7FD4,7FD5,7FD8,7FDF,7FE0,7FE1,7FE5,7FE6,7FE9,7FEE,7FF0,7FF1,7FF3,7FFB,7FFC,8000,8001,8003,8004,8005,8006,800B,800C,800D,8010,8012,8014,8015,8016,8017,8018,8019,801C,8020,8022,8025,8026,8027,8028,8029,802A,8031,8033,8035,8036,8037,8038,803B,803D,803F,8042,8043,8046,804A,804B,804C,804D,8052,8054,8058,805A,8069,806A,8071,807F,8080,8083,8084,8086,8087,8089,808B,808C,8093,8096,8098,809A,809B,809C,809D,809F,80A0,80A1,80A2,80A4,80A5,80A9,80AA,80AB,80AD,80AE,80AF,80B1,80B2,80B4,80B7,80BA,80BC,80BD,80BE,80BF,80C0,80C1,80C2,80C3,80C4,80C6,80CC,80CD,80CE,80D6,80D7,80D9,80DA,80DB,80DC,80DD,80DE,80E1,80E4,80E5,80E7,80E8,80E9,80EA,80EB,80EC,80ED,80EF,80F0,80F1,80F2,80F3,80F4,80F6,80F8,80FA,80FC,80FD,8102,8106,8109,810A,810D,810E,810F,8110,8111,8112,8113,8114,8116,8118,811A,811E,812C,812F,8131,8132,8136,8138,813E,8146,8148,814A,814B,814C,8150,8151,8153,8154,8155,8159,815A,8160,8165,8167,8169,816D,816E,8170,8171,8174,8179,817A,817B,817C,817D,817E,817F,8180,8182,8188,818A,818F,8191,8198,819B,819C,819D,81A3,81A6,81A8,81AA,81B3,81BA,81BB,81C0,81C1,81C2,81C3,81C6,81CA,81CC,81E3,81E7,81EA,81EC,81ED,81F3,81F4,81FB,81FC,81FE,8200,8201,8202,8204,8205,8206,820C,820D,8210,8212,8214,821B,821C,821E,821F,8221,8222,8223,8228,822A,822B,822C,822D,822F,8230,8231,8233,8234,8235,8236,8237,8238,8239,823B,823E,8244,8247,8249,824B,824F,8258,825A,825F,8268,826E,826F,8270,8272,8273,8274,8279,827A,827D,827E,827F,8282,8284,8288,828A,828B,828D,828E,828F,8291,8292,8297,8298,8299,829C,829D,829F,82A1,82A4,82A5,82A6,82A8,82A9,82AA,82AB,82AC,82AD,82AE,82AF,82B0,82B1,82B3,82B4,82B7,82B8,82B9,82BD,82BE,82C1,82C4,82C7,82C8,82CA,82CB,82CC,82CD,82CE,82CF,82D1,82D2,82D3,82D4,82D5,82D7,82D8,82DB,82DC,82DE,82DF,82E0,82E1,82E3,82E4,82E5,82E6,82EB,82EF,82F1,82F4,82F7,82F9,82FB,8301,8302,8303,8304,8305,8306,8307,8308,8309,830C,830E,830F,8311,8314,8315,8317,831A,831B,831C,8327,8328,832B,832C,832D,832F,8331,8333,8334,8335,8336,8338,8339,833A,833C,8340,8343,8346,8347,8349,834F,8350,8351,8352,8354,835A,835B,835C,835E,835F,8360,8361,8363,8364,8365,8366,8367,8368,8369,836A,836B,836C,836D,836E,836F,8377,8378,837B,837C,837D,8385,8386,8389,838E,8392,8393,8398,839B,839C,839E,83A0,83A8,83A9,83AA,83AB,83B0,83B1,83B2,83B3,83B4,83B6,83B7,83B8,83B9,83BA,83BC,83BD,83C0,83C1,83C5,83C7,83CA,83CC,83CF,83D4,83D6,83D8,83DC,83DD,83DF,83E0,83E1,83E5,83E9,83EA,83F0,83F1,83F2,83F8,83F9,83FD,8401,8403,8404,8406,840B,840C,840D,840E,840F,8411,8418,841C,841D,8424,8425,8426,8427,8428,8431,8438,843C,843D,8446,8451,8457,8459,845A,845B,845C,8461,8463,8469,846B,846C,846D,8471,8473,8475,8476,8478,847A,8482,8487,8488,8489,848B,848C,848E,8497,8499,849C,84A1,84AF,84B2,84B4,84B8,84B9,84BA,84BD,84BF,84C1,84C4,84C9,84CA,84CD,84D0,84D1,84D3,84D6,84DD,84DF,84E0,84E3,84E5,84E6,84EC,84F0,84FC,84FF,850C,8511,8513,8517,851A,851F,8521,852B,852C,8537,8538,8539,853A,853B,853C,853D,8543,8548,8549,854A,8556,8559,855E,8564,8568,8572,8574,8579,857A,857B,857E,8584,8585,8587,858F,859B,859C,85A4,85A8,85AA,85AE,85AF,85B0,85B7,85B9,85C1,85C9,85CF,85D0,85D3,85D5,85DC,85E4,85E9,85FB,85FF,8605,8611,8616,8627,8629,8638,863C,864D,864E,864F,8650,8651,8654,865A,865E,8662,866B,866C,866E,8671,8679,867A,867B,867C,867D,867E,867F,8680,8681,8682,868A,868B,868C,868D,8693,8695,869C,869D,86A3,86A4,86A7,86A8,86A9,86AA,86AC,86AF,86B0,86B1,86B4,86B5,86B6,86BA,86C0,86C4,86C6,86C7,86C9,86CA,86CB,86CE,86CF,86D0,86D1,86D4,86D8,86D9,86DB,86DE,86DF,86E4,86E9,86ED,86EE,86F0,86F1,86F2,86F3,86F4,86F8,86F9,86FE,8700,8702,8703,8707,8708,8709,870A,870D,8712,8713,8715,8717,8718,871A,871C,871E,8721,8722,8723,8725,8729,872E,8731,8734,8737,873B,873E,873F,8747,8748,8749,874C,874E,8753,8757,8759,8760,8763,8764,8765,876E,8770,8774,8776,877B,877C,877D,877E,8782,8783,8785,8788,878B,878D,8793,8797,879F,87A8,87AB,87AC,87AD,87AF,87B3,87B5,87BA,87BD,87C0,87C6,87CA,87CB,87D1,87D2,87D3,87DB,87E0,87E5,87EA,87EE,87F9,87FE,8803,880A,8813,8815,8816,881B,8821,8822,8832,8839,883C,8840,8844,8845,884C,884D,8854,8857,8859,8861,8862,8863,8864,8865,8868,8869,886B,886C,886E,8870,8872,8877,887D,887E,887F,8881,8882,8884,8885,8888,888B,888D,8892,8896,889C,88A2,88A4,88AB,88AD,88B1,88B7,88BC,88C1,88C2,88C5,88C6,88C9,88CE,88D2,88D4,88D5,88D8,88D9,88DF,88E2,88E3,88E4,88E5,88E8,88F0,88F1,88F3,88F4,88F8,88F9,88FC,88FE,8902,890A,8910,8912,8913,8919,891A,891B,8921,8925,892A,892B,8930,8934,8936,8941,8944,895E,895F,8966,897B,897F,8981,8983,8986,89C1,89C2,89C4,89C5,89C6,89C7,89C8,89C9,89CA,89CB,89CC,89CE,89CF,89D0,89D1,89D2,89D6,89DA,89DC,89DE,89E3,89E5,89E6,89EB,89EF,89F3,8A00,8A07,8A3E,8A48,8A79,8A89,8A8A,8A93,8B07,8B26,8B66,8B6C,8BA0,8BA1,8BA2,8BA3,8BA4,8BA5,8BA6,8BA7,8BA8,8BA9,8BAA,8BAB,8BAD,8BAE,8BAF,8BB0,8BB2,8BB3,8BB4,8BB5,8BB6,8BB7,8BB8,8BB9,8BBA,8BBC,8BBD,8BBE,8BBF,8BC0,8BC1,8BC2,8BC3,8BC4,8BC5,8BC6,8BC8,8BC9,8BCA,8BCB,8BCC,8BCD,8BCE,8BCF,8BD1,8BD2,8BD3,8BD4,8BD5,8BD6,8BD7,8BD8,8BD9,8BDA,8BDB,8BDC,8BDD,8BDE,8BDF,8BE0,8BE1,8BE2,8BE3,8BE4,8BE5,8BE6,8BE7,8BE8,8BE9,8BEB,8BEC,8BED,8BEE,8BEF,8BF0,8BF1,8BF2,8BF3,8BF4,8BF5,8BF6,8BF7,8BF8,8BF9,8BFA,8BFB,8BFC,8BFD,8BFE,8BFF,8C00,8C01,8C02,8C03,8C04,8C05,8C06,8C07,8C08,8C0A,8C0B,8C0C,8C0D,8C0E,8C0F,8C10,8C11,8C12,8C13,8C14,8C15,8C16,8C17,8C18,8C19,8C1A,8C1B,8C1C,8C1D,8C1F,8C20,8C21,8C22,8C23,8C24,8C25,8C26,8C27,8C28,8C29,8C2A,8C2B,8C2C,8C2D,8C2E,8C2F,8C30,8C31,8C32,8C33,8C34,8C35,8C36,8C37,8C41,8C46,8C47,8C49,8C4C,8C55,8C5A,8C61,8C62,8C6A,8C6B,8C73,8C78,8C79,8C7A,8C82,8C85,8C89,8C8A,8C8C,8C94,8C98,8D1D,8D1E,8D1F,8D21,8D22,8D23,8D24,8D25,8D26,8D27,8D28,8D29,8D2A,8D2B,8D2C,8D2D,8D2E,8D2F,8D30,8D31,8D32,8D33,8D34,8D35,8D36,8D37,8D38,8D39,8D3A,8D3B,8D3C,8D3D,8D3E,8D3F,8D40,8D41,8D42,8D43,8D44,8D45,8D46,8D47,8D48,8D49,8D4A,8D4B,8D4C,8D4D,8D4E,8D4F,8D50,8D53,8D54,8D55,8D56,8D58,8D59,8D5A,8D5B,8D5C,8D5D,8D5E,8D60,8D61,8D62,8D63,8D64,8D66,8D67,8D6B,8D6D,8D70,8D73,8D74,8D75,8D76,8D77,8D81,8D84,8D85,8D8A,8D8B,8D91,8D94,8D9F,8DA3,8DB1,8DB3,8DB4,8DB5,8DB8,8DBA,8DBC,8DBE,8DBF,8DC3,8DC4,8DC6,8DCB,8DCC,8DCE,8DCF,8DD1,8DD6,8DD7,8DDA,8DDB,8DDD,8DDE,8DDF,8DE3,8DE4,8DE8,8DEA,8DEB,8DEC,8DEF,8DF3,8DF5,8DF7,8DF8,8DF9,8DFA,8DFB,8DFD,8E05,8E09,8E0A,8E0C,8E0F,8E14,8E1D,8E1E,8E1F,8E22,8E23,8E29,8E2A,8E2C,8E2E,8E2F,8E31,8E35,8E39,8E3A,8E3D,8E40,8E41,8E42,8E44,8E47,8E48,8E49,8E4A,8E4B,8E51,8E52,8E59,8E66,8E69,8E6C,8E6D,8E6F,8E70,8E72,8E74,8E76,8E7C,8E7F,8E81,8E85,8E87,8E8F,8E90,8E94,8E9C,8E9E,8EAB,8EAC,8EAF,8EB2,8EBA,8ECE,8F66,8F67,8F68,8F69,8F6B,8F6C,8F6D,8F6E,8F6F,8F70,8F71,8F72,8F73,8F74,8F75,8F76,8F77,8F78,8F79,8F7A,8F7B,8F7C,8F7D,8F7E,8F7F,8F81,8F82,8F83,8F84,8F85,8F86,8F87,8F88,8F89,8F8A,8F8B,8F8D,8F8E,8F8F,8F90,8F91,8F93,8F94,8F95,8F96,8F97,8F98,8F99,8F9A,8F9B,8F9C,8F9E,8F9F,8FA3,8FA8,8FA9,8FAB,8FB0,8FB1,8FB6,8FB9,8FBD,8FBE,8FC1,8FC2,8FC4,8FC5,8FC7,8FC8,8FCE,8FD0,8FD1,8FD3,8FD4,8FD5,8FD8,8FD9,8FDB,8FDC,8FDD,8FDE,8FDF,8FE2,8FE4,8FE5,8FE6,8FE8,8FE9,8FEA,8FEB,8FED,8FEE,8FF0,8FF3,8FF7,8FF8,8FF9,8FFD,9000,9001,9002,9003,9004,9005,9006,9009,900A,900B,900D,900F,9010,9011,9012,9014,9016,9017,901A,901B,901D,901E,901F,9020,9021,9022,9026,902D,902E,902F,9035,9036,9038,903B,903C,903E,9041,9042,9044,9047,904D,904F,9050,9051,9052,9053,9057,9058,905B,9062,9063,9065,9068,906D,906E,9074,9075,907D,907F,9080,9082,9083,9088,908B,9091,9093,9095,9097,9099,909B,909D,90A1,90A2,90A3,90A6,90AA,90AC,90AE,90AF,90B0,90B1,90B3,90B4,90B5,90B6,90B8,90B9,90BA,90BB,90BE,90C1,90C4,90C5,90C7,90CA,90CE,90CF,90D0,90D1,90D3,90D7,90DB,90DC,90DD,90E1,90E2,90E6,90E7,90E8,90EB,90ED,90EF,90F4,90F8,90FD,90FE,9102,9104,9119,911E,9122,9123,912F,9131,9139,9143,9146,9149,914A,914B,914C,914D,914E,914F,9150,9152,9157,915A,915D,915E,9161,9162,9163,9164,9165,9169,916A,916C,916E,916F,9170,9171,9172,9174,9175,9176,9177,9178,9179,917D,917E,917F,9185,9187,9189,918B,918C,918D,9190,9191,9192,919A,919B,91A2,91A3,91AA,91AD,91AE,91AF,91B4,91B5,91BA,91C7,91C9,91CA,91CC,91CD,91CE,91CF,91D1,91DC,9274,928E,92AE,92C8,933E,936A,938F,93CA,93D6,943E,946B,9485,9486,9487,9488,9489,948A,948B,948C,948D,948E,948F,9490,9492,9493,9494,9495,9497,9499,949A,949B,949C,949D,949E,949F,94A0,94A1,94A2,94A3,94A4,94A5,94A6,94A7,94A8,94A9,94AA,94AB,94AC,94AD,94AE,94AF,94B0,94B1,94B2,94B3,94B4,94B5,94B6,94B7,94B8,94B9,94BA,94BB,94BC,94BD,94BE,94BF,94C0,94C1,94C2,94C3,94C4,94C5,94C6,94C8,94C9,94CA,94CB,94CC,94CD,94CE,94D0,94D1,94D2,94D5,94D6,94D7,94D8,94D9,94DB,94DC,94DD,94DE,94DF,94E0,94E1,94E2,94E3,94E4,94E5,94E7,94E8,94E9,94EA,94EB,94EC,94ED,94EE,94EF,94F0,94F1,94F2,94F3,94F4,94F5,94F6,94F7,94F8,94F9,94FA,94FC,94FD,94FE,94FF,9500,9501,9502,9503,9504,9505,9506,9507,9508,9509,950A,950B,950C,950D,950E,950F,9510,9511,9512,9513,9514,9515,9516,9517,9518,9519,951A,951B,951D,951E,951F,9521,9522,9523,9524,9525,9526,9528,9529,952A,952B,952C,952D,952E,952F,9530,9531,9532,9534,9535,9536,9537,9538,9539,953A,953B,953C,953E,953F,9540,9541,9542,9544,9545,9546,9547,9549,954A,954C,954D,954E,954F,9550,9551,9552,9553,9554,9556,9557,9558,9559,955B,955C,955D,955E,955F,9561,9562,9563,9564,9565,9566,9567,9568,9569,956A,956B,956C,956D,956F,9570,9571,9572,9573,9576,957F,95E8,95E9,95EA,95EB,95ED,95EE,95EF,95F0,95F1,95F2,95F3,95F4,95F5,95F6,95F7,95F8,95F9,95FA,95FB,95FC,95FD,95FE,9600,9601,9602,9603,9604,9605,9606,9608,9609,960A,960B,960C,960D,960E,960F,9610,9611,9612,9614,9615,9616,9617,9619,961A,961C,961D,961F,9621,9622,962A,962E,9631,9632,9633,9634,9635,9636,963B,963C,963D,963F,9640,9642,9644,9645,9646,9647,9648,9649,964B,964C,964D,9650,9654,9655,965B,965F,9661,9662,9664,9667,9668,9669,966A,966C,9672,9674,9675,9676,9677,9685,9686,9688,968B,968D,968F,9690,9694,9697,9698,9699,969C,96A7,96B0,96B3,96B6,96B9,96BC,96BD,96BE,96C0,96C1,96C4,96C5,96C6,96C7,96C9,96CC,96CD,96CE,96CF,96D2,96D5,96E0,96E8,96E9,96EA,96EF,96F3,96F6,96F7,96F9,96FE,9700,9701,9704,9706,9707,9708,9709,970D,970E,970F,9713,9716,971C,971E,972A,972D,9730,9732,9738,9739,973E,9752,9753,9756,9759,975B,975E,9760,9761,9762,9765,9769,9773,9774,9776,977C,9785,978B,978D,9791,9792,9794,9798,97A0,97A3,97AB,97AD,97AF,97B2,97B4,97E6,97E7,97E9,97EA,97EB,97EC,97ED,97F3,97F5,97F6,9875,9876,9877,9878,9879,987A,987B,987C,987D,987E,987F,9880,9881,9882,9883,9884,9885,9886,9887,9888,9889,988A,988C,988D,988F,9890,9891,9893,9894,9896,9897,9898,989A,989B,989C,989D,989E,989F,98A0,98A1,98A2,98A4,98A5,98A6,98A7,98CE,98D1,98D2,98D3,98D5,98D8,98D9,98DA,98DE,98DF,98E7,98E8,990D,9910,992E,9954,9955,9963,9965,9967,9968,9969,996A,996B,996C,996D,996E,996F,9970,9971,9972,9974,9975,9976,9977,997A,997C,997D,997F,9980,9981,9984,9985,9986,9987,9988,998A,998B,998D,998F,9990,9991,9992,9993,9994,9995,9996,9997,9998,9999,99A5,99A8,9A6C,9A6D,9A6E,9A6F,9A70,9A71,9A73,9A74,9A75,9A76,9A77,9A78,9A79,9A7A,9A7B,9A7C,9A7D,9A7E,9A7F,9A80,9A81,9A82,9A84,9A85,9A86,9A87,9A88,9A8A,9A8B,9A8C,9A8F,9A90,9A91,9A92,9A93,9A96,9A97,9A98,9A9A,9A9B,9A9C,9A9D,9A9E,9A9F,9AA0,9AA1,9AA2,9AA3,9AA4,9AA5,9AA7,9AA8,9AB0,9AB1,9AB6,9AB7,9AB8,9ABA,9ABC,9AC0,9AC1,9AC2,9AC5,9ACB,9ACC,9AD1,9AD3,9AD8,9ADF,9AE1,9AE6,9AEB,9AED,9AEF,9AF9,9AFB,9B03,9B08,9B0F,9B13,9B1F,9B23,9B2F,9B32,9B3B,9B3C,9B41,9B42,9B43,9B44,9B45,9B47,9B48,9B49,9B4D,9B4F,9B51,9B54,9C7C,9C7F,9C81,9C82,9C85,9C86,9C87,9C88,9C8B,9C8D,9C8E,9C90,9C91,9C92,9C94,9C95,9C9A,9C9B,9C9C,9C9E,9C9F,9CA0,9CA1,9CA2,9CA3,9CA4,9CA5,9CA6,9CA7,9CA8,9CA9,9CAB,9CAD,9CAE,9CB0,9CB1,9CB2,9CB3,9CB4,9CB5,9CB6,9CB7,9CB8,9CBA,9CBB,9CBC,9CBD,9CC3,9CC4,9CC5,9CC6,9CC7,9CCA,9CCB,9CCC,9CCD,9CCE,9CCF,9CD0,9CD3,9CD4,9CD5,9CD6,9CD7,9CD8,9CD9,9CDC,9CDD,9CDE,9CDF,9CE2,9E1F,9E20,9E21,9E22,9E23,9E25,9E26,9E28,9E29,9E2A,9E2B,9E2C,9E2D,9E2F,9E31,9E32,9E33,9E35,9E36,9E37,9E38,9E39,9E3A,9E3D,9E3E,9E3F,9E41,9E42,9E43,9E44,9E45,9E46,9E47,9E48,9E49,9E4A,9E4B,9E4C,9E4E,9E4F,9E51,9E55,9E57,9E58,9E5A,9E5B,9E5C,9E5E,9E63,9E64,9E66,9E67,9E68,9E69,9E6A,9E6B,9E6C,9E6D,9E70,9E71,9E73,9E7E,9E7F,9E82,9E87,9E88,9E8B,9E92,9E93,9E9D,9E9F,9EA6,9EB4,9EB8,9EBB,9EBD,9EBE,9EC4,9EC9,9ECD,9ECE,9ECF,9ED1,9ED4,9ED8,9EDB,9EDC,9EDD,9EDF,9EE0,9EE2,9EE5,9EE7,9EE9,9EEA,9EEF,9EF9,9EFB,9EFC,9EFE,9F0B,9F0D,9F0E,9F10,9F13,9F17,9F19,9F20,9F22,9F2C,9F2F,9F37,9F39,9F3B,9F3D,9F3E,9F44,9F50,9F51,9F7F,9F80,9F83,9F84,9F85,9F86,9F87,9F88,9F89,9F8A,9F8B,9F8C,9F99,9F9A,9F9B,9F9F,9FA0,FF01,FF02,FF03,FF04,FF05,FF06,FF07,FF08,FF09,FF0A,FF0B,FF0C,FF0D,FF0E,FF0F,FF10,FF11,FF12,FF13,FF14,FF15,FF16,FF17,FF18,FF19,FF1A,FF1B,FF1C,FF1D,FF1E,FF1F,FF20,FF21,FF22,FF23,FF24,FF25,FF26,FF27,FF28,FF29,FF2A,FF2B,FF2C,FF2D,FF2E,FF2F,FF30,FF31,FF32,FF33,FF34,FF35,FF36,FF37,FF38,FF39,FF3A,FF3B,FF3C,FF3D,FF3E,FF3F,FF40,FF41,FF42,FF43,FF44,FF45,FF46,FF47,FF48,FF49,FF4A,FF4B,FF4C,FF4D,FF4E,FF4F,FF50,FF51,FF52,FF53,FF54,FF55,FF56,FF57,FF58,FF59,FF5A,FF5B,FF5C,FF5D,FF5E,FFE0,FFE1,FFE3,FFE5".indexOf(t);
    return -1 != n && (t = "A1E8,A1EC,A1A7,A1E3,A1C0,A1A4,A1C1,A8A4,A8A2,A8A8,A8A6,A8BA,A8AC,A8AA,A8B0,A8AE,A1C2,A8B4,A8B2,A8B9,A8A1,A8A5,A8A7,A8A9,A8AD,A8B1,A8A3,A8AB,A8AF,A8B3,A8B5,A8B6,A8B7,A8B8,A1A6,A1A5,A6A1,A6A2,A6A3,A6A4,A6A5,A6A6,A6A7,A6A8,A6A9,A6AA,A6AB,A6AC,A6AD,A6AE,A6AF,A6B0,A6B1,A6B2,A6B3,A6B4,A6B5,A6B6,A6B7,A6B8,A6C1,A6C2,A6C3,A6C4,A6C5,A6C6,A6C7,A6C8,A6C9,A6CA,A6CB,A6CC,A6CD,A6CE,A6CF,A6D0,A6D1,A6D2,A6D3,A6D4,A6D5,A6D6,A6D7,A6D8,A7A7,A7A1,A7A2,A7A3,A7A4,A7A5,A7A6,A7A8,A7A9,A7AA,A7AB,A7AC,A7AD,A7AE,A7AF,A7B0,A7B1,A7B2,A7B3,A7B4,A7B5,A7B6,A7B7,A7B8,A7B9,A7BA,A7BB,A7BC,A7BD,A7BE,A7BF,A7C0,A7C1,A7D1,A7D2,A7D3,A7D4,A7D5,A7D6,A7D8,A7D9,A7DA,A7DB,A7DC,A7DD,A7DE,A7DF,A7E0,A7E1,A7E2,A7E3,A7E4,A7E5,A7E6,A7E7,A7E8,A7E9,A7EA,A7EB,A7EC,A7ED,A7EE,A7EF,A7F0,A7F1,A7D7,A1AA,A1AC,A1AE,A1AF,A1B0,A1B1,A1AD,A1EB,A1E4,A1E5,A1F9,A1E6,A1ED,A2F1,A2F2,A2F3,A2F4,A2F5,A2F6,A2F7,A2F8,A2F9,A2FA,A2FB,A2FC,A1FB,A1FC,A1FA,A1FD,A1CA,A1C7,A1C6,A1CC,A1D8,A1DE,A1CF,A1CE,A1C4,A1C5,A1C9,A1C8,A1D2,A1D3,A1E0,A1DF,A1C3,A1CB,A1D7,A1D6,A1D5,A1D9,A1D4,A1DC,A1DD,A1DA,A1DB,A1D1,A1CD,A1D0,A2D9,A2DA,A2DB,A2DC,A2DD,A2DE,A2DF,A2E0,A2E1,A2E2,A2C5,A2C6,A2C7,A2C8,A2C9,A2CA,A2CB,A2CC,A2CD,A2CE,A2CF,A2D0,A2D1,A2D2,A2D3,A2D4,A2D5,A2D6,A2D7,A2D8,A2B1,A2B2,A2B3,A2B4,A2B5,A2B6,A2B7,A2B8,A2B9,A2BA,A2BB,A2BC,A2BD,A2BE,A2BF,A2C0,A2C1,A2C2,A2C3,A2C4,A9A4,A9A5,A9A6,A9A7,A9A8,A9A9,A9AA,A9AB,A9AC,A9AD,A9AE,A9AF,A9B0,A9B1,A9B2,A9B3,A9B4,A9B5,A9B6,A9B7,A9B8,A9B9,A9BA,A9BB,A9BC,A9BD,A9BE,A9BF,A9C0,A9C1,A9C2,A9C3,A9C4,A9C5,A9C6,A9C7,A9C8,A9C9,A9CA,A9CB,A9CC,A9CD,A9CE,A9CF,A9D0,A9D1,A9D2,A9D3,A9D4,A9D5,A9D6,A9D7,A9D8,A9D9,A9DA,A9DB,A9DC,A9DD,A9DE,A9DF,A9E0,A9E1,A9E2,A9E3,A9E4,A9E5,A9E6,A9E7,A9E8,A9E9,A9EA,A9EB,A9EC,A9ED,A9EE,A9EF,A1F6,A1F5,A1F8,A1F7,A1F4,A1F3,A1F0,A1F2,A1F1,A1EF,A1EE,A1E2,A1E1,A1A1,A1A2,A1A3,A1A8,A1A9,A1B4,A1B5,A1B6,A1B7,A1B8,A1B9,A1BA,A1BB,A1BE,A1BF,A1FE,A1B2,A1B3,A1BC,A1BD,A4A1,A4A2,A4A3,A4A4,A4A5,A4A6,A4A7,A4A8,A4A9,A4AA,A4AB,A4AC,A4AD,A4AE,A4AF,A4B0,A4B1,A4B2,A4B3,A4B4,A4B5,A4B6,A4B7,A4B8,A4B9,A4BA,A4BB,A4BC,A4BD,A4BE,A4BF,A4C0,A4C1,A4C2,A4C3,A4C4,A4C5,A4C6,A4C7,A4C8,A4C9,A4CA,A4CB,A4CC,A4CD,A4CE,A4CF,A4D0,A4D1,A4D2,A4D3,A4D4,A4D5,A4D6,A4D7,A4D8,A4D9,A4DA,A4DB,A4DC,A4DD,A4DE,A4DF,A4E0,A4E1,A4E2,A4E3,A4E4,A4E5,A4E6,A4E7,A4E8,A4E9,A4EA,A4EB,A4EC,A4ED,A4EE,A4EF,A4F0,A4F1,A4F2,A4F3,A5A1,A5A2,A5A3,A5A4,A5A5,A5A6,A5A7,A5A8,A5A9,A5AA,A5AB,A5AC,A5AD,A5AE,A5AF,A5B0,A5B1,A5B2,A5B3,A5B4,A5B5,A5B6,A5B7,A5B8,A5B9,A5BA,A5BB,A5BC,A5BD,A5BE,A5BF,A5C0,A5C1,A5C2,A5C3,A5C4,A5C5,A5C6,A5C7,A5C8,A5C9,A5CA,A5CB,A5CC,A5CD,A5CE,A5CF,A5D0,A5D1,A5D2,A5D3,A5D4,A5D5,A5D6,A5D7,A5D8,A5D9,A5DA,A5DB,A5DC,A5DD,A5DE,A5DF,A5E0,A5E1,A5E2,A5E3,A5E4,A5E5,A5E6,A5E7,A5E8,A5E9,A5EA,A5EB,A5EC,A5ED,A5EE,A5EF,A5F0,A5F1,A5F2,A5F3,A5F4,A5F5,A5F6,A8C5,A8C6,A8C7,A8C8,A8C9,A8CA,A8CB,A8CC,A8CD,A8CE,A8CF,A8D0,A8D1,A8D2,A8D3,A8D4,A8D5,A8D6,A8D7,A8D8,A8D9,A8DA,A8DB,A8DC,A8DD,A8DE,A8DF,A8E0,A8E1,A8E2,A8E3,A8E4,A8E5,A8E6,A8E7,A8E8,A8E9,A2E5,A2E6,A2E7,A2E8,A2E9,A2EA,A2EB,A2EC,A2ED,A2EE,D2BB,B6A1,C6DF,CDF2,D5C9,C8FD,C9CF,CFC2,D8A2,B2BB,D3EB,D8A4,B3F3,D7A8,C7D2,D8A7,CAC0,C7F0,B1FB,D2B5,B4D4,B6AB,CBBF,D8A9,B6AA,C1BD,D1CF,C9A5,D8AD,B8F6,D1BE,E3DC,D6D0,B7E1,B4AE,C1D9,D8BC,CDE8,B5A4,CEAA,D6F7,C0F6,BED9,D8AF,C4CB,BEC3,D8B1,C3B4,D2E5,D6AE,CEDA,D5A7,BAF5,B7A6,C0D6,C6B9,C5D2,C7C7,B9D4,B3CB,D2D2,D8BF,BEC5,C6F2,D2B2,CFB0,CFE7,CAE9,D8C0,C2F2,C2D2,C8E9,C7AC,C1CB,D3E8,D5F9,CAC2,B6FE,D8A1,D3DA,BFF7,D4C6,BBA5,D8C1,CEE5,BEAE,D8A8,D1C7,D0A9,D8BD,D9EF,CDF6,BFBA,BDBB,BAA5,D2E0,B2FA,BAE0,C4B6,CFED,BEA9,CDA4,C1C1,C7D7,D9F1,D9F4,C8CB,D8E9,D2DA,CAB2,C8CA,D8EC,D8EA,D8C6,BDF6,C6CD,B3F0,D8EB,BDF1,BDE9,C8D4,B4D3,C2D8,B2D6,D7D0,CACB,CBFB,D5CC,B8B6,CFC9,D9DA,D8F0,C7AA,D8EE,B4FA,C1EE,D2D4,D8ED,D2C7,D8EF,C3C7,D1F6,D6D9,D8F2,D8F5,BCFE,BCDB,C8CE,B7DD,B7C2,C6F3,D8F8,D2C1,CEE9,BCBF,B7FC,B7A5,D0DD,D6DA,D3C5,BBEF,BBE1,D8F1,C9A1,CEB0,B4AB,D8F3,C9CB,D8F6,C2D7,D8F7,CEB1,D8F9,B2AE,B9C0,D9A3,B0E9,C1E6,C9EC,CBC5,CBC6,D9A4,B5E8,B5AB,CEBB,B5CD,D7A1,D7F4,D3D3,CCE5,BACE,D9A2,D9DC,D3E0,D8FD,B7F0,D7F7,D8FE,D8FA,D9A1,C4E3,D3B6,D8F4,D9DD,D8FB,C5E5,C0D0,D1F0,B0DB,BCD1,D9A6,D9A5,D9AC,D9AE,D9AB,CAB9,D9A9,D6B6,B3DE,D9A8,C0FD,CACC,D9AA,D9A7,D9B0,B6B1,B9A9,D2C0,CFC0,C2C2,BDC4,D5EC,B2E0,C7C8,BFEB,D9AD,D9AF,CEEA,BAEE,C7D6,B1E3,B4D9,B6ED,D9B4,BFA1,D9DE,C7CE,C0FE,D9B8,CBD7,B7FD,D9B5,D9B7,B1A3,D3E1,D9B9,D0C5,D9B6,D9B1,D9B2,C1A9,D9B3,BCF3,D0DE,B8A9,BEE3,D9BD,D9BA,B0B3,D9C2,D9C4,B1B6,D9BF,B5B9,BEF3,CCC8,BAF2,D2D0,D9C3,BDE8,B3AB,D9C5,BEEB,D9C6,D9BB,C4DF,D9BE,D9C1,D9C0,D5AE,D6B5,C7E3,D9C8,BCD9,D9CA,D9BC,D9CB,C6AB,D9C9,D7F6,CDA3,BDA1,D9CC,C5BC,CDB5,D9CD,D9C7,B3A5,BFFE,B8B5,C0FC,B0F8,B4F6,D9CE,D9CF,B4A2,D9D0,B4DF,B0C1,D9D1,C9B5,CFF1,D9D2,C1C5,D9D6,C9AE,D9D5,D9D4,D9D7,CBDB,BDA9,C6A7,D9D3,D9D8,D9D9,C8E5,C0DC,B6F9,D8A3,D4CA,D4AA,D0D6,B3E4,D5D7,CFC8,B9E2,BFCB,C3E2,B6D2,CDC3,D9EE,D9F0,B5B3,B6B5,BEA4,C8EB,C8AB,B0CB,B9AB,C1F9,D9E2,C0BC,B9B2,B9D8,D0CB,B1F8,C6E4,BEDF,B5E4,D7C8,D1F8,BCE6,CADE,BCBD,D9E6,D8E7,C4DA,B8D4,C8BD,B2E1,D4D9,C3B0,C3E1,DAA2,C8DF,D0B4,BEFC,C5A9,B9DA,DAA3,D4A9,DAA4,D9FB,B6AC,B7EB,B1F9,D9FC,B3E5,BEF6,BFF6,D2B1,C0E4,B6B3,D9FE,D9FD,BEBB,C6E0,D7BC,DAA1,C1B9,B5F2,C1E8,BCF5,B4D5,C1DD,C4FD,BCB8,B7B2,B7EF,D9EC,C6BE,BFAD,BBCB,B5CA,DBC9,D0D7,CDB9,B0BC,B3F6,BBF7,DBCA,BAAF,D4E4,B5B6,B5F3,D8D6,C8D0,B7D6,C7D0,D8D7,BFAF,DBBB,D8D8,D0CC,BBAE,EBBE,C1D0,C1F5,D4F2,B8D5,B4B4,B3F5,C9BE,C5D0,C5D9,C0FB,B1F0,D8D9,B9CE,B5BD,D8DA,D6C6,CBA2,C8AF,C9B2,B4CC,BFCC,B9F4,D8DB,D8DC,B6E7,BCC1,CCEA,CFF7,D8DD,C7B0,B9D0,BDA3,CCDE,C6CA,D8E0,D8DE,D8DF,B0FE,BEE7,CAA3,BCF4,B8B1,B8EE,D8E2,BDCB,D8E4,D8E3,C5FC,D8E5,D8E6,C1A6,C8B0,B0EC,B9A6,BCD3,CEF1,DBBD,C1D3,B6AF,D6FA,C5AC,BDD9,DBBE,DBBF,C0F8,BEA2,C0CD,DBC0,CAC6,B2AA,D3C2,C3E3,D1AB,DBC2,C0D5,DBC3,BFB1,C4BC,C7DA,DBC4,D9E8,C9D7,B9B4,CEF0,D4C8,B0FC,B4D2,D0D9,D9E9,DECB,D9EB,D8B0,BBAF,B1B1,B3D7,D8CE,D4D1,BDB3,BFEF,CFBB,D8D0,B7CB,D8D1,C6A5,C7F8,D2BD,D8D2,C4E4,CAAE,C7A7,D8A6,C9FD,CEE7,BBDC,B0EB,BBAA,D0AD,B1B0,D7E4,D7BF,B5A5,C2F4,C4CF,B2A9,B2B7,B1E5,DFB2,D5BC,BFA8,C2AC,D8D5,C2B1,D8D4,CED4,DAE0,CEC0,D8B4,C3AE,D3A1,CEA3,BCB4,C8B4,C2D1,BEED,D0B6,DAE1,C7E4,B3A7,B6F2,CCFC,C0FA,C0F7,D1B9,D1E1,D8C7,B2DE,C0E5,BAF1,D8C8,D4AD,CFE1,D8C9,D8CA,CFC3,B3F8,BEC7,D8CB,DBCC,C8A5,CFD8,C8FE,B2CE,D3D6,B2E6,BCB0,D3D1,CBAB,B7B4,B7A2,CAE5,C8A1,CADC,B1E4,D0F0,C5D1,DBC5,B5FE,BFDA,B9C5,BEE4,C1ED,DFB6,DFB5,D6BB,BDD0,D5D9,B0C8,B6A3,BFC9,CCA8,DFB3,CAB7,D3D2,D8CF,D2B6,BAC5,CBBE,CCBE,DFB7,B5F0,DFB4,D3F5,B3D4,B8F7,DFBA,BACF,BCAA,B5F5,CDAC,C3FB,BAF3,C0F4,CDC2,CFF2,DFB8,CFC5,C2C0,DFB9,C2F0,BEFD,C1DF,CDCC,D2F7,B7CD,DFC1,DFC4,B7F1,B0C9,B6D6,B7D4,BAAC,CCFD,BFD4,CBB1,C6F4,D6A8,DFC5,CEE2,B3B3,CEFC,B4B5,CEC7,BAF0,CEE1,D1BD,DFC0,B4F4,B3CA,B8E6,DFBB,C4C5,DFBC,DFBD,DFBE,C5BB,DFBF,DFC2,D4B1,DFC3,C7BA,CED8,C4D8,DFCA,DFCF,D6DC,DFC9,DFDA,CEB6,BAC7,DFCE,DFC8,C5DE,C9EB,BAF4,C3FC,BED7,DFC6,DFCD,C5D8,D5A6,BACD,BECC,D3BD,B8C0,D6E4,DFC7,B9BE,BFA7,C1FC,DFCB,DFCC,DFD0,DFDB,DFE5,DFD7,DFD6,D7C9,DFE3,DFE4,E5EB,D2A7,DFD2,BFA9,D4DB,BFC8,DFD4,CFCC,DFDD,D1CA,DFDE,B0A7,C6B7,DFD3,BAE5,B6DF,CDDB,B9FE,D4D5,DFDF,CFEC,B0A5,DFE7,DFD1,D1C6,DFD5,DFD8,DFD9,DFDC,BBA9,DFE0,DFE1,DFE2,DFE6,DFE8,D3B4,B8E7,C5B6,DFEA,C9DA,C1A8,C4C4,BFDE,CFF8,D5DC,DFEE,B2B8,BADF,DFEC,DBC1,D1E4,CBF4,B4BD,B0A6,DFF1,CCC6,DFF2,DFED,DFE9,DFEB,DFEF,DFF0,BBBD,DFF3,DFF4,BBA3,CADB,CEA8,E0A7,B3AA,E0A6,E0A1,DFFE,CDD9,DFFC,DFFA,BFD0,D7C4,C9CC,DFF8,B0A1,DFFD,DFFB,E0A2,E0A8,B7C8,C6A1,C9B6,C0B2,DFF5,C5BE,D8C4,DFF9,C4F6,E0A3,E0A4,E0A5,D0A5,E0B4,CCE4,E0B1,BFA6,E0AF,CEB9,E0AB,C9C6,C0AE,E0AE,BAED,BAB0,E0A9,DFF6,E0B3,E0B8,B4AD,E0B9,CFB2,BAC8,E0B0,D0FA,E0AC,D4FB,DFF7,C5E7,E0AD,D3F7,E0B6,E0B7,E0C4,D0E1,E0BC,E0C9,E0CA,E0BE,E0AA,C9A4,E0C1,E0B2,CAC8,E0C3,E0B5,CECB,CBC3,E0CD,E0C6,E0C2,E0CB,E0BA,E0BF,E0C0,E0C5,E0C7,E0C8,E0CC,E0BB,CBD4,E0D5,E0D6,E0D2,E0D0,BCCE,E0D1,B8C2,D8C5,D0EA,C2EF,E0CF,E0BD,E0D4,E0D3,E0D7,E0DC,E0D8,D6F6,B3B0,D7EC,CBBB,E0DA,CEFB,BAD9,E0E1,E0DD,D2AD,E0E2,E0DB,E0D9,E0DF,E0E0,E0DE,E0E4,C6F7,D8AC,D4EB,E0E6,CAC9,E0E5,B8C1,E0E7,E0E8,E0E9,E0E3,BABF,CCE7,E0EA,CFF9,E0EB,C8C2,BDC0,C4D2,E0EC,E0ED,C7F4,CBC4,E0EE,BBD8,D8B6,D2F2,E0EF,CDC5,B6DA,E0F1,D4B0,C0A7,B4D1,CEA7,E0F0,E0F2,B9CC,B9FA,CDBC,E0F3,C6D4,E0F4,D4B2,C8A6,E0F6,E0F5,E0F7,CDC1,CAA5,D4DA,DBD7,DBD9,DBD8,B9E7,DBDC,DBDD,B5D8,DBDA,DBDB,B3A1,DBDF,BBF8,D6B7,DBE0,BEF9,B7BB,DBD0,CCAE,BFB2,BBB5,D7F8,BFD3,BFE9,BCE1,CCB3,DBDE,B0D3,CEEB,B7D8,D7B9,C6C2,C0A4,CCB9,DBE7,DBE1,C6BA,DBE3,DBE8,C5F7,DBEA,DBE9,BFC0,DBE6,DBE5,B4B9,C0AC,C2A2,DBE2,DBE4,D0CD,DBED,C0DD,DBF2,B6E2,DBF3,DBD2,B9B8,D4AB,DBEC,BFD1,DBF0,DBD1,B5E6,DBEB,BFE5,DBEE,DBF1,DBF9,B9A1,B0A3,C2F1,B3C7,DBEF,DBF8,C6D2,DBF4,DBF5,DBF7,DBF6,DBFE,D3F2,B2BA,DBFD,DCA4,DBFB,DBFA,DBFC,C5E0,BBF9,DCA3,DCA5,CCC3,B6D1,DDC0,DCA1,DCA2,C7B5,B6E9,DCA7,DCA6,DCA9,B1A4,B5CC,BFB0,D1DF,B6C2,DCA8,CBFA,EBF3,CBDC,CBFE,CCC1,C8FB,DCAA,CCEE,DCAB,DBD3,DCAF,DCAC,BEB3,CAFB,DCAD,C9CA,C4B9,C7BD,DCAE,D4F6,D0E6,C4AB,B6D5,DBD4,B1DA,DBD5,DBD6,BABE,C8C0,CABF,C8C9,D7B3,C9F9,BFC7,BAF8,D2BC,E2BA,B4A6,B1B8,B8B4,CFC4,D9E7,CFA6,CDE2,D9ED,B6E0,D2B9,B9BB,E2B9,E2B7,B4F3,CCEC,CCAB,B7F2,D8B2,D1EB,BABB,CAA7,CDB7,D2C4,BFE4,BCD0,B6E1,DEC5,DEC6,DBBC,D1D9,C6E6,C4CE,B7EE,B7DC,BFFC,D7E0,C6F5,B1BC,DEC8,BDB1,CCD7,DECA,DEC9,B5EC,C9DD,B0C2,C5AE,C5AB,C4CC,BCE9,CBFD,BAC3,E5F9,C8E7,E5FA,CDFD,D7B1,B8BE,C2E8,C8D1,E5FB,B6CA,BCCB,D1FD,E6A1,C3EE,E6A4,E5FE,E6A5,CDD7,B7C1,E5FC,E5FD,E6A3,C4DD,E6A8,E6A7,C3C3,C6DE,E6AA,C4B7,E6A2,CABC,BDE3,B9C3,E6A6,D0D5,CEAF,E6A9,E6B0,D2A6,BDAA,E6AD,E6AF,C0D1,D2CC,BCA7,E6B1,D2F6,D7CB,CDFE,CDDE,C2A6,E6AB,E6AC,BDBF,E6AE,E6B3,E6B2,E6B6,E6B8,C4EF,C4C8,BEEA,C9EF,E6B7,B6F0,C3E4,D3E9,E6B4,E6B5,C8A2,E6BD,E6B9,C6C5,CDF1,E6BB,E6BC,BBE9,E6BE,E6BA,C0B7,D3A4,E6BF,C9F4,E6C3,E6C4,D0F6,C3BD,C3C4,E6C2,E6C1,E6C7,CFB1,EBF4,E6CA,E6C5,BCDE,C9A9,BCB5,CFD3,E6C8,E6C9,E6CE,E6D0,E6D1,E6CB,B5D5,E6CC,E6CF,C4DB,E6C6,E6CD,E6D2,E6D4,E6D3,E6D5,D9F8,E6D6,E6D7,D7D3,E6DD,E6DE,BFD7,D4D0,D7D6,B4E6,CBEF,E6DA,D8C3,D7CE,D0A2,C3CF,E6DF,BCBE,B9C2,E6DB,D1A7,BAA2,C2CF,D8AB,CAEB,E5EE,E6DC,B7F5,C8E6,C4F5,E5B2,C4FE,CBFC,E5B3,D5AC,D3EE,CAD8,B0B2,CBCE,CDEA,BAEA,E5B5,E5B4,D7DA,B9D9,D6E6,B6A8,CDF0,D2CB,B1A6,CAB5,B3E8,C9F3,BFCD,D0FB,CAD2,E5B6,BBC2,CFDC,B9AC,D4D7,BAA6,D1E7,CFFC,BCD2,E5B7,C8DD,BFED,B1F6,CBDE,BCC5,BCC4,D2FA,C3DC,BFDC,B8BB,C3C2,BAAE,D4A2,C7DE,C4AF,B2EC,B9D1,E5BB,C1C8,D5AF,E5BC,E5BE,B4E7,B6D4,CBC2,D1B0,B5BC,CAD9,B7E2,C9E4,BDAB,CEBE,D7F0,D0A1,C9D9,B6FB,E6D8,BCE2,B3BE,C9D0,E6D9,B3A2,DECC,D3C8,DECD,D2A2,DECE,BECD,DECF,CAAC,D2FC,B3DF,E5EA,C4E1,BEA1,CEB2,C4F2,BED6,C6A8,B2E3,BED3,C7FC,CCEB,BDEC,CEDD,CABA,C6C1,E5EC,D0BC,D5B9,E5ED,CAF4,CDC0,C2C5,E5EF,C2C4,E5F0,E5F8,CDCD,C9BD,D2D9,E1A8,D3EC,CBEA,C6F1,E1AC,E1A7,E1A9,E1AA,E1AF,B2ED,E1AB,B8DA,E1AD,E1AE,E1B0,B5BA,E1B1,E1B3,E1B8,D1D2,E1B6,E1B5,C1EB,E1B7,D4C0,E1B2,E1BA,B0B6,E1B4,BFF9,E1B9,E1BB,E1BE,E1BC,D6C5,CFBF,E1BD,E1BF,C2CD,B6EB,D3F8,C7CD,B7E5,BEFE,E1C0,E1C1,E1C7,B3E7,C6E9,B4DE,D1C2,E1C8,E1C6,E1C5,E1C3,E1C2,B1C0,D5B8,E1C4,E1CB,E1CC,E1CA,EFFA,E1D3,E1D2,C7B6,E1C9,E1CE,E1D0,E1D4,E1D1,E1CD,E1CF,E1D5,E1D6,E1D7,E1D8,E1DA,E1DB,CEA1,E7DD,B4A8,D6DD,D1B2,B3B2,B9A4,D7F3,C7C9,BEDE,B9AE,CED7,B2EE,DBCF,BCBA,D2D1,CBC8,B0CD,CFEF,D9E3,BDED,B1D2,CAD0,B2BC,CBA7,B7AB,CAA6,CFA3,E0F8,D5CA,E0FB,E0FA,C5C1,CCFB,C1B1,E0F9,D6E3,B2AF,D6C4,B5DB,B4F8,D6A1,CFAF,B0EF,E0FC,E1A1,B3A3,E0FD,E0FE,C3B1,C3DD,E1A2,B7F9,BBCF,E1A3,C4BB,E1A4,E1A5,E1A6,B4B1,B8C9,C6BD,C4EA,B2A2,D0D2,E7DB,BBC3,D3D7,D3C4,B9E3,E2CF,D7AF,C7EC,B1D3,B4B2,E2D1,D0F2,C2AE,E2D0,BFE2,D3A6,B5D7,E2D2,B5EA,C3ED,B8FD,B8AE,C5D3,B7CF,E2D4,E2D3,B6C8,D7F9,CDA5,E2D8,E2D6,CAFC,BFB5,D3B9,E2D5,E2D7,C1AE,C0C8,E2DB,E2DA,C0AA,C1CE,E2DC,E2DD,E2DE,DBC8,D1D3,CDA2,BDA8,DEC3,D8A5,BFAA,DBCD,D2EC,C6FA,C5AA,DEC4,B1D7,DFAE,CABD,DFB1,B9AD,D2FD,B8A5,BAEB,B3DA,B5DC,D5C5,C3D6,CFD2,BBA1,E5F3,E5F2,E5F4,CDE4,C8F5,B5AF,C7BF,E5F6,ECB0,E5E6,B9E9,B5B1,C2BC,E5E8,E5E7,E5E9,D2CD,E1EA,D0CE,CDAE,D1E5,B2CA,B1EB,B1F2,C5ED,D5C3,D3B0,E1DC,E1DD,D2DB,B3B9,B1CB,CDF9,D5F7,E1DE,BEB6,B4FD,E1DF,BADC,E1E0,BBB2,C2C9,E1E1,D0EC,CDBD,E1E2,B5C3,C5C7,E1E3,E1E4,D3F9,E1E5,D1AD,E1E6,CEA2,E1E7,B5C2,E1E8,BBD5,D0C4,E2E0,B1D8,D2E4,E2E1,BCC9,C8CC,E2E3,ECFE,ECFD,DFAF,E2E2,D6BE,CDFC,C3A6,E3C3,D6D2,E2E7,E2E8,D3C7,E2EC,BFEC,E2ED,E2E5,B3C0,C4EE,E2EE,D0C3,BAF6,E2E9,B7DE,BBB3,CCAC,CBCB,E2E4,E2E6,E2EA,E2EB,E2F7,E2F4,D4F5,E2F3,C5AD,D5FA,C5C2,B2C0,E2EF,E2F2,C1AF,CBBC,B5A1,E2F9,BCB1,E2F1,D0D4,D4B9,E2F5,B9D6,E2F6,C7D3,E2F0,D7DC,EDA1,E2F8,EDA5,E2FE,CAD1,C1B5,BBD0,BFD6,BAE3,CBA1,EDA6,EDA3,EDA2,BBD6,EDA7,D0F4,EDA4,BADE,B6F7,E3A1,B6B2,CCF1,B9A7,CFA2,C7A1,BFD2,B6F1,E2FA,E2FB,E2FD,E2FC,C4D5,E3A2,D3C1,E3A7,C7C4,CFA4,E3A9,BAB7,E3A8,BBDA,E3A3,E3A4,E3AA,E3A6,CEF2,D3C6,BBBC,D4C3,C4FA,EDA8,D0FC,E3A5,C3F5,E3AD,B1AF,E3B2,BCC2,E3AC,B5BF,C7E9,E3B0,BEAA,CDEF,BBF3,CCE8,E3AF,E3B1,CFA7,E3AE,CEA9,BBDD,B5EB,BEE5,B2D2,B3CD,B1B9,E3AB,B2D1,B5AC,B9DF,B6E8,CFEB,E3B7,BBCC,C8C7,D0CA,E3B8,B3EE,EDA9,D3FA,D3E4,EDAA,E3B9,D2E2,E3B5,D3DE,B8D0,E3B3,E3B6,B7DF,E3B4,C0A2,E3BA,D4B8,B4C8,E3BB,BBC5,C9F7,C9E5,C4BD,EDAB,C2FD,BBDB,BFAE,CEBF,E3BC,BFB6,B1EF,D4F7,E3BE,EDAD,E3BF,BAA9,EDAC,E3BD,E3C0,BAB6,B6AE,D0B8,B0C3,EDAE,EDAF,C0C1,E3C1,C5B3,E3C2,DCB2,EDB0,B8EA,CEEC,EAA7,D0E7,CAF9,C8D6,CFB7,B3C9,CED2,BDE4,E3DE,BBF2,EAA8,D5BD,C6DD,EAA9,EAAA,EAAC,EAAB,EAAE,EAAD,BDD8,EAAF,C2BE,B4C1,B4F7,BBA7,ECE6,ECE5,B7BF,CBF9,B1E2,ECE7,C9C8,ECE8,ECE9,CAD6,DED0,B2C5,D4FA,C6CB,B0C7,B4F2,C8D3,CDD0,BFB8,BFDB,C7A4,D6B4,C0A9,DED1,C9A8,D1EF,C5A4,B0E7,B3B6,C8C5,B0E2,B7F6,C5FA,B6F3,D5D2,B3D0,BCBC,B3AD,BEF1,B0D1,D2D6,CAE3,D7A5,CDB6,B6B6,BFB9,D5DB,B8A7,C5D7,DED2,BFD9,C2D5,C7C0,BBA4,B1A8,C5EA,C5FB,CCA7,B1A7,B5D6,C4A8,DED3,D1BA,B3E9,C3F2,B7F7,D6F4,B5A3,B2F0,C4B4,C4E9,C0AD,DED4,B0E8,C5C4,C1E0,B9D5,BEDC,CDD8,B0CE,CDCF,DED6,BED0,D7BE,DED5,D5D0,B0DD,C4E2,C2A3,BCF0,D3B5,C0B9,C5A1,B2A6,D4F1,C0A8,CAC3,DED7,D5FC,B9B0,C8AD,CBA9,DED9,BFBD,C6B4,D7A7,CAB0,C4C3,B3D6,B9D2,D6B8,EAFC,B0B4,BFE6,CCF4,CDDA,D6BF,C2CE,CECE,CCA2,D0AE,C4D3,B5B2,DED8,D5F5,BCB7,BBD3,B0A4,C5B2,B4EC,D5F1,EAFD,DEDA,CDA6,CDEC,CEE6,DEDC,CDB1,C0A6,D7BD,DEDB,B0C6,BAB4,C9D3,C4F3,BEE8,B2B6,C0CC,CBF0,BCF1,BBBB,B5B7,C5F5,DEE6,DEE3,BEDD,DEDF,B4B7,BDDD,DEE0,C4ED,CFC6,B5E0,B6DE,CADA,B5F4,DEE5,D5C6,DEE1,CCCD,C6FE,C5C5,D2B4,BEF2,C2D3,CCBD,B3B8,BDD3,BFD8,CDC6,D1DA,B4EB,DEE4,DEDD,DEE7,EAFE,C2B0,DEE2,D6C0,B5A7,B2F4,DEE8,DEF2,DEED,DEF1,C8E0,D7E1,DEEF,C3E8,CCE1,B2E5,D2BE,DEEE,DEEB,CED5,B4A7,BFAB,BEBE,BDD2,DEE9,D4AE,DEDE,DEEA,C0BF,DEEC,B2F3,B8E9,C2A7,BDC1,DEF5,DEF8,B2AB,B4A4,B4EA,C9A6,DEF6,CBD1,B8E3,DEF7,DEFA,DEF9,CCC2,B0E1,B4EE,E5BA,D0AF,B2EB,EBA1,DEF4,C9E3,DEF3,B0DA,D2A1,B1F7,CCAF,DEF0,CBA4,D5AA,DEFB,B4DD,C4A6,DEFD,C3FE,C4A1,DFA1,C1CC,DEFC,BEEF,C6B2,B3C5,C8F6,CBBA,DEFE,DFA4,D7B2,B3B7,C1C3,C7CB,B2A5,B4E9,D7AB,C4EC,DFA2,DFA3,DFA5,BAB3,DFA6,C0DE,C9C3,B2D9,C7E6,DFA7,C7DC,DFA8,EBA2,CBD3,DFAA,DFA9,B2C1,C5CA,DFAB,D4DC,C8C1,DFAC,BEF0,DFAD,D6A7,EAB7,EBB6,CAD5,D8FC,B8C4,B9A5,B7C5,D5FE,B9CA,D0A7,F4CD,B5D0,C3F4,BEC8,EBB7,B0BD,BDCC,C1B2,B1D6,B3A8,B8D2,C9A2,B6D8,EBB8,BEB4,CAFD,C7C3,D5FB,B7F3,CEC4,D5AB,B1F3,ECB3,B0DF,ECB5,B6B7,C1CF,F5FA,D0B1,D5E5,CED3,BDEF,B3E2,B8AB,D5B6,EDBD,B6CF,CBB9,D0C2,B7BD,ECB6,CAA9,C5D4,ECB9,ECB8,C2C3,ECB7,D0FD,ECBA,ECBB,D7E5,ECBC,ECBD,C6EC,CEDE,BCC8,C8D5,B5A9,BEC9,D6BC,D4E7,D1AE,D0F1,EAB8,EAB9,EABA,BAB5,CAB1,BFF5,CDFA,EAC0,B0BA,EABE,C0A5,EABB,B2FD,C3F7,BBE8,D2D7,CEF4,EABF,EABC,EAC3,D0C7,D3B3,B4BA,C3C1,D7F2,D5D1,CAC7,EAC5,EAC4,EAC7,EAC6,D6E7,CFD4,EACB,BBCE,BDFA,C9CE,EACC,C9B9,CFFE,EACA,D4CE,EACD,EACF,CDED,EAC9,EACE,CEEE,BBDE,B3BF,C6D5,BEB0,CEFA,C7E7,BEA7,EAD0,D6C7,C1C0,D4DD,EAD1,CFBE,EAD2,CAEE,C5AF,B0B5,EAD4,EAD3,F4DF,C4BA,B1A9,E5DF,EAD5,CAEF,EAD6,EAD7,C6D8,EAD8,EAD9,D4BB,C7FA,D2B7,B8FC,EAC2,B2DC,C2FC,D4F8,CCE6,D7EE,D4C2,D3D0,EBC3,C5F3,B7FE,EBD4,CBB7,EBDE,C0CA,CDFB,B3AF,C6DA,EBFC,C4BE,CEB4,C4A9,B1BE,D4FD,CAF5,D6EC,C6D3,B6E4,BBFA,D0E0,C9B1,D4D3,C8A8,B8CB,E8BE,C9BC,E8BB,C0EE,D0D3,B2C4,B4E5,E8BC,D5C8,B6C5,E8BD,CAF8,B8DC,CCF5,C0B4,D1EE,E8BF,E8C2,BABC,B1AD,BDDC,EABD,E8C3,E8C6,E8CB,E8CC,CBC9,B0E5,BCAB,B9B9,E8C1,CDF7,E8CA,CEF6,D5ED,C1D6,E8C4,C3B6,B9FB,D6A6,E8C8,CAE0,D4E6,E8C0,E8C5,E8C7,C7B9,B7E3,E8C9,BFDD,E8D2,E8D7,E8D5,BCDC,BCCF,E8DB,E8DE,E8DA,B1FA,B0D8,C4B3,B8CC,C6E2,C8BE,C8E1,E8CF,E8D4,E8D6,B9F1,E8D8,D7F5,C4FB,E8DC,B2E9,E8D1,BCED,BFC2,E8CD,D6F9,C1F8,B2F1,E8DF,CAC1,E8D9,D5A4,B1EA,D5BB,E8CE,E8D0,B6B0,E8D3,E8DD,C0B8,CAF7,CBA8,C6DC,C0F5,E8E9,D0A3,E8F2,D6EA,E8E0,E8E1,D1F9,BACB,B8F9,B8F1,D4D4,E8EF,E8EE,E8EC,B9F0,CCD2,E8E6,CEA6,BFF2,B0B8,E8F1,E8F0,D7C0,E8E4,CDA9,C9A3,BBB8,BDDB,E8EA,E8E2,E8E3,E8E5,B5B5,E8E7,C7C5,E8EB,E8ED,BDB0,D7AE,E8F8,E8F5,CDB0,E8F6,C1BA,E8E8,C3B7,B0F0,E8F4,E8F7,B9A3,C9D2,C3CE,CEE0,C0E6,CBF3,CCDD,D0B5,CAE1,E8F3,BCEC,E8F9,C3DE,C6E5,B9F7,B0F4,D7D8,BCAC,C5EF,CCC4,E9A6,C9AD,E9A2,C0E2,BFC3,E8FE,B9D7,E8FB,E9A4,D2CE,E9A3,D6B2,D7B5,E9A7,BDB7,E8FC,E8FD,E9A1,CDD6,D2AC,E9B2,E9A9,B4AA,B4BB,E9AB,D0A8,E9A5,B3FE,E9AC,C0E3,E9AA,E9B9,E9B8,E9AE,E8FA,E9A8,BFAC,E9B1,E9BA,C2A5,E9AF,B8C5,E9AD,D3DC,E9B4,E9B5,E9B7,E9C7,C0C6,E9C5,E9B0,E9BB,B0F1,E9BC,D5A5,E9BE,E9BF,E9C1,C1F1,C8B6,E9BD,E9C2,E9C3,E9B3,E9B6,BBB1,E9C0,BCF7,E9C4,E9C6,E9CA,E9CE,B2DB,E9C8,B7AE,E9CB,E9CC,D5C1,C4A3,E9D8,BAE1,E9C9,D3A3,E9D4,E9D7,E9D0,E9CF,C7C1,E9D2,E9D9,B3C8,E9D3,CFF0,E9CD,B3F7,E9D6,E9DA,CCB4,CFAD,E9D5,E9DC,E9DB,E9DE,E9D1,E9DD,E9DF,C3CA,C7B7,B4CE,BBB6,D0C0,ECA3,C5B7,D3FB,ECA4,ECA5,C6DB,BFEE,ECA6,ECA7,D0AA,C7B8,B8E8,ECA8,D6B9,D5FD,B4CB,B2BD,CEE4,C6E7,CDE1,B4F5,CBC0,BCDF,E9E2,E9E3,D1EA,E9E5,B4F9,E9E4,D1B3,CAE2,B2D0,E9E8,E9E6,E9E7,D6B3,E9E9,E9EA,E9EB,E9EC,ECAF,C5B9,B6CE,D2F3,B5EE,BBD9,ECB1,D2E3,CEE3,C4B8,C3BF,B6BE,D8B9,B1C8,B1CF,B1D1,C5FE,B1D0,C3AB,D5B1,EBA4,BAC1,CCBA,EBA5,EBA7,EBA8,EBA6,EBA9,EBAB,EBAA,EBAC,CACF,D8B5,C3F1,C3A5,C6F8,EBAD,C4CA,EBAE,EBAF,EBB0,B7D5,B7FA,EBB1,C7E2,EBB3,BAA4,D1F5,B0B1,EBB2,EBB4,B5AA,C2C8,C7E8,EBB5,CBAE,E3DF,D3C0,D9DB,CDA1,D6AD,C7F3,D9E0,BBE3,BABA,E3E2,CFAB,E3E0,C9C7,BAB9,D1B4,E3E1,C8EA,B9AF,BDAD,B3D8,CEDB,CCC0,E3E8,E3E9,CDF4,CCAD,BCB3,E3EA,E3EB,D0DA,C6FB,B7DA,C7DF,D2CA,CED6,E3E4,E3EC,C9F2,B3C1,E3E7,C6E3,E3E5,EDB3,E3E6,C9B3,C5E6,B9B5,C3BB,E3E3,C5BD,C1A4,C2D9,B2D7,E3ED,BBA6,C4AD,E3F0,BEDA,E3FB,E3F5,BAD3,B7D0,D3CD,D6CE,D5D3,B9C1,D5B4,D1D8,D0B9,C7F6,C8AA,B2B4,C3DA,E3EE,E3FC,E3EF,B7A8,E3F7,E3F4,B7BA,C5A2,E3F6,C5DD,B2A8,C6FC,C4E0,D7A2,C0E1,E3F9,E3FA,E3FD,CCA9,E3F3,D3BE,B1C3,EDB4,E3F1,E3F2,E3F8,D0BA,C6C3,D4F3,E3FE,BDE0,E4A7,E4A6,D1F3,E4A3,E4A9,C8F7,CFB4,E4A8,E4AE,C2E5,B6B4,BDF2,E4A2,BAE9,E4AA,E4AC,B6FD,D6DE,E4B2,E4AD,E4A1,BBEE,CDDD,C7A2,C5C9,C1F7,E4A4,C7B3,BDAC,BDBD,E4A5,D7C7,B2E2,E4AB,BCC3,E4AF,BBEB,E4B0,C5A8,E4B1,D5E3,BFA3,E4BA,E4B7,E4BB,E4BD,C6D6,BAC6,C0CB,B8A1,E4B4,D4A1,BAA3,BDFE,E4BC,CDBF,C4F9,CFFB,C9E6,D3BF,CFD1,E4B3,E4B8,E4B9,CCE9,CCCE,C0D4,E4B5,C1B0,E4B6,CED0,BBC1,B5D3,C8F3,BDA7,D5C7,C9AC,B8A2,E4CA,E4CC,D1C4,D2BA,BAAD,BAD4,E4C3,B5ED,D7CD,E4C0,CFFD,E4BF,C1DC,CCCA,CAE7,C4D7,CCD4,E4C8,E4C7,E4C1,E4C4,B5AD,D3D9,E4C6,D2F9,B4E3,BBB4,C9EE,B4BE,BBEC,D1CD,CCED,EDB5,C7E5,D4A8,E4CB,D7D5,E4C2,BDA5,E4C5,D3E6,E4C9,C9F8,E4BE,D3E5,C7FE,B6C9,D4FC,B2B3,E4D7,CEC2,E4CD,CEBC,B8DB,E4D6,BFCA,D3CE,C3EC,C5C8,E4D8,CDC4,E4CF,E4D4,E4D5,BAFE,CFE6,D5BF,E4D2,E4D0,E4CE,CDE5,CAAA,C0A3,BDA6,E4D3,B8C8,E4E7,D4B4,E4DB,C1EF,E4E9,D2E7,E4DF,E4E0,CFAA,CBDD,E4DA,E4D1,E4E5,C8DC,E4E3,C4E7,E4E2,E4E1,B3FC,E4E8,B5E1,D7CC,E4E6,BBAC,D7D2,CCCF,EBF8,E4E4,B9F6,D6CD,E4D9,E4DC,C2FA,E4DE,C2CB,C0C4,C2D0,B1F5,CCB2,B5CE,E4EF,C6AF,C6E1,E4F5,C2A9,C0EC,D1DD,E4EE,C4AE,E4ED,E4F6,E4F4,C2FE,E4DD,E4F0,CAFE,D5C4,E4F1,D1FA,E4EB,E4EC,E4F2,CEAB,C5CB,C7B1,C2BA,E4EA,C1CA,CCB6,B3B1,E4FB,E4F3,E4FA,E4FD,E4FC,B3CE,B3BA,E4F7,E4F9,E4F8,C5EC,C0BD,D4E8,E5A2,B0C4,E5A4,E5A3,BCA4,E5A5,E5A1,E4FE,B1F4,E5A8,E5A9,E5A6,E5A7,E5AA,C6D9,E5AB,E5AD,E5AC,E5AF,E5AE,B9E0,E5B0,E5B1,BBF0,ECE1,C3F0,B5C6,BBD2,C1E9,D4EE,BEC4,D7C6,D4D6,B2D3,ECBE,EAC1,C2AF,B4B6,D1D7,B3B4,C8B2,BFBB,ECC0,D6CB,ECBF,ECC1,ECC5,BEE6,CCBF,C5DA,BEBC,ECC6,B1FE,ECC4,D5A8,B5E3,ECC2,C1B6,B3E3,ECC3,CBB8,C0C3,CCFE,C1D2,ECC8,BAE6,C0D3,D6F2,D1CC,BFBE,B7B3,C9D5,ECC7,BBE2,CCCC,BDFD,C8C8,CFA9,CDE9,C5EB,B7E9,D1C9,BAB8,ECC9,ECCA,BBC0,ECCB,ECE2,B1BA,B7D9,BDB9,ECCC,D1E6,ECCD,C8BB,ECD1,ECD3,BBCD,BCE5,ECCF,C9B7,C3BA,ECE3,D5D5,ECD0,D6F3,ECD2,ECCE,ECD4,ECD5,C9BF,CFA8,D0DC,D1AC,C8DB,ECD6,CEF5,CAEC,ECDA,ECD9,B0BE,ECD7,ECD8,ECE4,C8BC,C1C7,ECDC,D1E0,ECDB,D4EF,ECDD,DBC6,ECDE,B1AC,ECDF,ECE0,D7A6,C5C0,EBBC,B0AE,BEF4,B8B8,D2AF,B0D6,B5F9,D8B3,CBAC,E3DD,C6AC,B0E6,C5C6,EBB9,EBBA,EBBB,D1C0,C5A3,EAF2,C4B2,C4B5,C0CE,EAF3,C4C1,CEEF,EAF0,EAF4,C9FC,C7A3,CCD8,CEFE,EAF5,EAF6,CFAC,C0E7,EAF7,B6BF,EAF8,EAF9,EAFA,EAFB,EAF1,C8AE,E1EB,B7B8,E1EC,E1ED,D7B4,E1EE,E1EF,D3CC,E1F1,BFF1,E1F0,B5D2,B1B7,E1F3,E1F2,BAFC,E1F4,B9B7,BED1,C4FC,BADD,BDC6,E1F5,E1F7,B6C0,CFC1,CAA8,E1F6,D5F8,D3FC,E1F8,E1FC,E1F9,E1FA,C0EA,E1FE,E2A1,C0C7,E1FB,E1FD,E2A5,C1D4,E2A3,E2A8,B2FE,E2A2,C3CD,B2C2,E2A7,E2A6,E2A4,E2A9,E2AB,D0C9,D6ED,C3A8,E2AC,CFD7,E2AE,BAEF,E9E0,E2AD,E2AA,BBAB,D4B3,E2B0,E2AF,E9E1,E2B1,E2B2,E2B3,CCA1,E2B4,E2B5,D0FE,C2CA,D3F1,CDF5,E7E0,E7E1,BEC1,C2EA,E7E4,E7E3,CDE6,C3B5,E7E2,BBB7,CFD6,C1E1,E7E9,E7E8,E7F4,B2A3,E7EA,E7E6,E7EC,E7EB,C9BA,D5E4,E7E5,B7A9,E7E7,E7EE,E7F3,D6E9,E7ED,E7F2,E7F1,B0E0,E7F5,C7F2,C0C5,C0ED,C1F0,E7F0,E7F6,CBF6,E8A2,E8A1,D7C1,E7FA,E7F9,E7FB,E7F7,E7FE,E7FD,E7FC,C1D5,C7D9,C5FD,C5C3,C7ED,E8A3,E8A6,E8A5,E8A7,BAF7,E7F8,E8A4,C8F0,C9AA,E8A9,B9E5,D1FE,E8A8,E8AA,E8AD,E8AE,C1A7,E8AF,E8B0,E8AC,E8B4,E8AB,E8B1,E8B5,E8B2,E8B3,E8B7,E8B6,B9CF,F0AC,F0AD,C6B0,B0EA,C8BF,CDDF,CECD,EAB1,EAB2,C6BF,B4C9,EAB3,D5E7,DDF9,EAB4,EAB5,EAB6,B8CA,DFB0,C9F5,CCF0,C9FA,C9FB,D3C3,CBA6,B8A6,F0AE,B1C2,E5B8,CCEF,D3C9,BCD7,C9EA,B5E7,C4D0,B5E9,EEAE,BBAD,E7DE,EEAF,B3A9,EEB2,EEB1,BDE7,EEB0,CEB7,C5CF,C1F4,DBCE,EEB3,D0F3,C2D4,C6E8,B7AC,EEB4,B3EB,BBFB,EEB5,E7DC,EEB6,BDAE,F1E2,CAE8,D2C9,F0DA,F0DB,F0DC,C1C6,B8ED,BECE,F0DE,C5B1,F0DD,D1F1,F0E0,B0CC,BDEA,D2DF,F0DF,B4AF,B7E8,F0E6,F0E5,C6A3,F0E1,F0E2,B4C3,F0E3,D5EE,CCDB,BED2,BCB2,F0E8,F0E7,F0E4,B2A1,D6A2,D3B8,BEB7,C8AC,F0EA,D1F7,D6CC,BADB,F0E9,B6BB,CDB4,C6A6,C1A1,F0EB,F0EE,F0ED,F0F0,F0EC,BBBE,F0EF,CCB5,F0F2,B3D5,B1D4,F0F3,F0F4,F0F6,B4E1,F0F1,F0F7,F0FA,F0F8,F0F5,F0FD,F0F9,F0FC,F0FE,F1A1,CEC1,F1A4,F1A3,C1F6,F0FB,CADD,B4F1,B1F1,CCB1,F1A6,F1A7,F1AC,D5CE,F1A9,C8B3,F1A2,F1AB,F1A8,F1A5,F1AA,B0A9,F1AD,F1AF,F1B1,F1B0,F1AE,D1A2,F1B2,F1B3,B9EF,B5C7,B0D7,B0D9,D4ED,B5C4,BDD4,BBCA,F0A7,B8DE,F0A8,B0A8,F0A9,CDEE,F0AA,F0AB,C6A4,D6E5,F1E4,F1E5,C3F3,D3DB,D6D1,C5E8,D3AF,D2E6,EEC1,B0BB,D5B5,D1CE,BCE0,BAD0,BFF8,B8C7,B5C1,C5CC,CAA2,C3CB,EEC2,C4BF,B6A2,EDEC,C3A4,D6B1,CFE0,EDEF,C5CE,B6DC,CAA1,EDED,EDF0,EDF1,C3BC,BFB4,EDEE,EDF4,EDF2,D5E6,C3DF,EDF3,EDF6,D5A3,D1A3,EDF5,C3D0,EDF7,BFF4,BEEC,EDF8,CCF7,D1DB,D7C5,D5F6,EDFC,EDFB,EDF9,EDFA,EDFD,BEA6,CBAF,EEA1,B6BD,EEA2,C4C0,EDFE,BDDE,B2C7,B6C3,EEA5,D8BA,EEA3,EEA6,C3E9,B3F2,EEA7,EEA4,CFB9,EEA8,C2F7,EEA9,EEAA,DEAB,C6B3,C7C6,D6F5,B5C9,CBB2,EEAB,CDAB,EEAC,D5B0,EEAD,F6C4,DBC7,B4A3,C3AC,F1E6,CAB8,D2D3,D6AA,EFF2,BED8,BDC3,EFF3,B6CC,B0AB,CAAF,EDB6,EDB7,CEF9,B7AF,BFF3,EDB8,C2EB,C9B0,EDB9,C6F6,BFB3,EDBC,C5F8,D1D0,D7A9,EDBA,EDBB,D1E2,EDBF,EDC0,EDC4,EDC8,EDC6,EDCE,D5E8,EDC9,EDC7,EDBE,C5E9,C6C6,C9E9,D4D2,EDC1,EDC2,EDC3,EDC5,C0F9,B4A1,B9E8,EDD0,EDD1,EDCA,EDCF,CEF8,CBB6,EDCC,EDCD,CFF5,EDD2,C1F2,D3B2,EDCB,C8B7,BCEF,C5F0,EDD6,B5EF,C2B5,B0AD,CBE9,B1AE,EDD4,CDEB,B5E2,EDD5,EDD3,EDD7,B5FA,EDD8,EDD9,EDDC,B1CC,C5F6,BCEE,EDDA,CCBC,B2EA,EDDB,C4EB,B4C5,B0F5,EDDF,C0DA,B4E8,C5CD,EDDD,BFC4,EDDE,C4A5,EDE0,EDE1,EDE3,C1D7,BBC7,BDB8,EDE2,EDE4,EDE6,EDE5,EDE7,CABE,ECEA,C0F1,C9E7,ECEB,C6EE,ECEC,C6ED,ECED,ECF0,D7E6,ECF3,ECF1,ECEE,ECEF,D7A3,C9F1,CBEE,ECF4,ECF2,CFE9,ECF6,C6B1,BCC0,ECF5,B5BB,BBF6,ECF7,D9F7,BDFB,C2BB,ECF8,ECF9,B8A3,ECFA,ECFB,ECFC,D3ED,D8AE,C0EB,C7DD,BACC,D0E3,CBBD,CDBA,B8D1,B1FC,C7EF,D6D6,BFC6,C3EB,EFF5,C3D8,D7E2,EFF7,B3D3,C7D8,D1ED,D6C8,EFF8,EFF6,BBFD,B3C6,BDD5,D2C6,BBE0,CFA1,EFFC,EFFB,EFF9,B3CC,C9D4,CBB0,EFFE,B0DE,D6C9,EFFD,B3ED,F6D5,CEC8,F0A2,F0A1,B5BE,BCDA,BBFC,B8E5,C4C2,F0A3,CBEB,F0A6,D1A8,BEBF,C7EE,F1B6,F1B7,BFD5,B4A9,F1B8,CDBB,C7D4,D5AD,F1B9,F1BA,C7CF,D2A4,D6CF,F1BB,BDD1,B4B0,BEBD,B4DC,CED1,BFDF,F1BD,BFFA,F1BC,F1BF,F1BE,F1C0,F1C1,C1FE,C1A2,CAFA,D5BE,BEBA,BEB9,D5C2,BFA2,CDAF,F1B5,BDDF,B6CB,D6F1,F3C3,F3C4,B8CD,F3C6,F3C7,B0CA,F3C5,F3C9,CBF1,F3CB,D0A6,B1CA,F3C8,F3CF,B5D1,F3D7,F3D2,F3D4,F3D3,B7FB,B1BF,F3CE,F3CA,B5DA,F3D0,F3D1,F3D5,F3CD,BCE3,C1FD,F3D6,F3DA,F3CC,B5C8,BDEE,F3DC,B7A4,BFF0,D6FE,CDB2,B4F0,B2DF,F3D8,F3D9,C9B8,F3DD,F3DE,F3E1,F3DF,F3E3,F3E2,F3DB,BFEA,B3EF,F3E0,C7A9,BCF2,F3EB,B9BF,F3E4,B2AD,BBFE,CBE3,F3ED,F3E9,B9DC,F3EE,F3E5,F3E6,F3EA,C2E1,F3EC,F3EF,F3E8,BCFD,CFE4,F3F0,F3E7,F3F2,D7AD,C6AA,F3F3,F3F1,C2A8,B8DD,F3F5,F3F4,B4DB,F3F6,F3F7,F3F8,C0BA,C0E9,C5F1,F3FB,F3FA,B4D8,F3FE,F3F9,F3FC,F3FD,F4A1,F4A3,BBC9,F4A2,F4A4,B2BE,F4A6,F4A5,BCAE,C3D7,D9E1,C0E0,F4CC,D7D1,B7DB,F4CE,C1A3,C6C9,B4D6,D5B3,F4D0,F4CF,F4D1,CBDA,F4D2,D4C1,D6E0,B7E0,C1B8,C1BB,F4D3,BEAC,B4E2,F4D4,F4D5,BEAB,F4D6,F4DB,F4D7,F4DA,BAFD,F4D8,F4D9,B8E2,CCC7,F4DC,B2DA,C3D3,D4E3,BFB7,F4DD,C5B4,F4E9,CFB5,CEC9,CBD8,CBF7,BDF4,D7CF,C0DB,D0F5,F4EA,F4EB,F4EC,F7E3,B7B1,F4ED,D7EB,F4EE,E6F9,BEC0,E6FA,BAEC,E6FB,CFCB,E6FC,D4BC,BCB6,E6FD,E6FE,BCCD,C8D2,CEB3,E7A1,B4BF,E7A2,C9B4,B8D9,C4C9,D7DD,C2DA,B7D7,D6BD,CEC6,B7C4,C5A6,E7A3,CFDF,E7A4,E7A5,E7A6,C1B7,D7E9,C9F0,CFB8,D6AF,D6D5,E7A7,B0ED,E7A8,E7A9,C9DC,D2EF,BEAD,E7AA,B0F3,C8DE,BDE1,E7AB,C8C6,E7AC,BBE6,B8F8,D1A4,E7AD,C2E7,BEF8,BDCA,CDB3,E7AE,E7AF,BEEE,D0E5,CBE7,CCD0,BCCC,E7B0,BCA8,D0F7,E7B1,D0F8,E7B2,E7B3,B4C2,E7B4,E7B5,C9FE,CEAC,C3E0,E7B7,B1C1,B3F1,E7B8,E7B9,D7DB,D5C0,E7BA,C2CC,D7BA,E7BB,E7BC,E7BD,BCEA,C3E5,C0C2,E7BE,E7BF,BCA9,E7C0,E7C1,E7B6,B6D0,E7C2,E7C3,E7C4,BBBA,B5DE,C2C6,B1E0,E7C5,D4B5,E7C6,B8BF,E7C8,E7C7,B7EC,E7C9,B2F8,E7CA,E7CB,E7CC,E7CD,E7CE,E7CF,E7D0,D3A7,CBF5,E7D1,E7D2,E7D3,E7D4,C9C9,E7D5,E7D6,E7D7,E7D8,E7D9,BDC9,E7DA,F3BE,B8D7,C8B1,F3BF,F3C0,F3C1,B9DE,CDF8,D8E8,BAB1,C2DE,EEB7,B7A3,EEB9,EEB8,B0D5,EEBB,D5D6,D7EF,D6C3,EEBD,CAF0,EEBC,EEBE,EEC0,EEBF,D1F2,C7BC,C3C0,B8E1,C1E7,F4C6,D0DF,F4C7,CFDB,C8BA,F4C8,F4C9,F4CA,F4CB,D9FA,B8FE,E5F1,D3F0,F4E0,CECC,B3E1,F1B4,D2EE,F4E1,CFE8,F4E2,C7CC,B5D4,B4E4,F4E4,F4E3,F4E5,F4E6,F4E7,BAB2,B0BF,F4E8,B7AD,D2ED,D2AB,C0CF,BFBC,EBA3,D5DF,EAC8,F1F3,B6F8,CBA3,C4CD,F1E7,F1E8,B8FB,F1E9,BAC4,D4C5,B0D2,F1EA,F1EB,F1EC,F1ED,F1EE,F1EF,F1F1,F1F0,C5D5,F1F2,B6FA,F1F4,D2AE,DEC7,CBCA,B3DC,B5A2,B9A2,C4F4,F1F5,F1F6,C1C4,C1FB,D6B0,F1F7,F1F8,C1AA,C6B8,BEDB,F1F9,B4CF,F1FA,EDB2,EDB1,CBE0,D2DE,CBC1,D5D8,C8E2,C0DF,BCA1,EBC1,D0A4,D6E2,B6C7,B8D8,EBC0,B8CE,EBBF,B3A6,B9C9,D6AB,B7F4,B7CA,BCE7,B7BE,EBC6,EBC7,B0B9,BFCF,EBC5,D3FD,EBC8,EBC9,B7CE,EBC2,EBC4,C9F6,D6D7,D5CD,D0B2,EBCF,CEB8,EBD0,B5A8,B1B3,EBD2,CCA5,C5D6,EBD3,EBD1,C5DF,EBCE,CAA4,EBD5,B0FB,BAFA,D8B7,F1E3,EBCA,EBCB,EBCC,EBCD,EBD6,E6C0,EBD9,BFE8,D2C8,EBD7,EBDC,B8EC,EBD8,BDBA,D0D8,B0B7,EBDD,C4DC,D6AC,B4E0,C2F6,BCB9,EBDA,EBDB,D4E0,C6EA,C4D4,EBDF,C5A7,D9F5,B2B1,EBE4,BDC5,EBE2,EBE3,B8AC,CDD1,EBE5,EBE1,C1B3,C6A2,CCF3,EBE6,C0B0,D2B8,EBE7,B8AF,B8AD,EBE8,C7BB,CDF3,EBEA,EBEB,EBED,D0C8,EBF2,EBEE,EBF1,C8F9,D1FC,EBEC,EBE9,B8B9,CFD9,C4E5,EBEF,EBF0,CCDA,CDC8,B0F2,EBF6,EBF5,B2B2,B8E0,EBF7,B1EC,CCC5,C4A4,CFA5,EBF9,ECA2,C5F2,EBFA,C9C5,E2DF,EBFE,CDCE,ECA1,B1DB,D3B7,D2DC,EBFD,EBFB,B3BC,EAB0,D7D4,F4AB,B3F4,D6C1,D6C2,D5E9,BECA,F4A7,D2A8,F4A8,F4A9,F4AA,BECB,D3DF,C9E0,C9E1,F3C2,CAE6,CCF2,E2B6,CBB4,CEE8,D6DB,F4AD,F4AE,F4AF,F4B2,BABD,F4B3,B0E3,F4B0,F4B1,BDA2,B2D5,F4B6,F4B7,B6E6,B2B0,CFCF,F4B4,B4AC,F4B5,F4B8,F4B9,CDA7,F4BA,F4BB,F4BC,CBD2,F4BD,F4BE,F4BF,F4DE,C1BC,BCE8,C9AB,D1DE,E5F5,DCB3,D2D5,DCB4,B0AC,DCB5,BDDA,DCB9,D8C2,DCB7,D3F3,C9D6,DCBA,DCB6,DCBB,C3A2,DCBC,DCC5,DCBD,CEDF,D6A5,DCCF,DCCD,DCD2,BDE6,C2AB,DCB8,DCCB,DCCE,DCBE,B7D2,B0C5,DCC7,D0BE,DCC1,BBA8,B7BC,DCCC,DCC6,DCBF,C7DB,D1BF,DCC0,DCCA,DCD0,CEAD,DCC2,DCC3,DCC8,DCC9,B2D4,DCD1,CBD5,D4B7,DCDB,DCDF,CCA6,DCE6,C3E7,DCDC,BFC1,DCD9,B0FA,B9B6,DCE5,DCD3,DCC4,DCD6,C8F4,BFE0,C9BB,B1BD,D3A2,DCDA,DCD5,C6BB,DCDE,D7C2,C3AF,B7B6,C7D1,C3A9,DCE2,DCD8,DCEB,DCD4,DCDD,BEA5,DCD7,DCE0,DCE3,DCE4,DCF8,DCE1,DDA2,DCE7,BCEB,B4C4,C3A3,B2E7,DCFA,DCF2,DCEF,DCFC,DCEE,D2F0,B2E8,C8D7,C8E3,DCFB,DCED,DCF7,DCF5,BEA3,DCF4,B2DD,DCF3,BCF6,DCE8,BBC4,C0F3,BCD4,DCE9,DCEA,DCF1,DCF6,DCF9,B5B4,C8D9,BBE7,DCFE,DCFD,D3AB,DDA1,DDA3,DDA5,D2F1,DDA4,DDA6,DDA7,D2A9,BAC9,DDA9,DDB6,DDB1,DDB4,DDB0,C6CE,C0F2,C9AF,DCEC,DDAE,DDB7,DCF0,DDAF,DDB8,DDAC,DDB9,DDB3,DDAD,C4AA,DDA8,C0B3,C1AB,DDAA,DDAB,DDB2,BBF1,DDB5,D3A8,DDBA,DDBB,C3A7,DDD2,DDBC,DDD1,B9BD,BED5,BEFA,BACA,DDCA,DDC5,DDBF,B2CB,DDC3,DDCB,B2A4,DDD5,DDBE,C6D0,DDD0,DDD4,C1E2,B7C6,DDCE,DDCF,DDC4,DDBD,DDCD,CCD1,DDC9,DDC2,C3C8,C6BC,CEAE,DDCC,DDC8,DDC1,DDC6,C2DC,D3A9,D3AA,DDD3,CFF4,C8F8,DDE6,DDC7,DDE0,C2E4,DDE1,DDD7,D6F8,DDD9,DDD8,B8F0,DDD6,C6CF,B6AD,DDE2,BAF9,D4E1,DDE7,B4D0,DDDA,BFFB,DDE3,DDDF,DDDD,B5D9,DDDB,DDDC,DDDE,BDAF,DDE4,DDE5,DDF5,C3C9,CBE2,DDF2,D8E1,C6D1,DDF4,D5F4,DDF3,DDF0,DDEC,DDEF,DDE8,D0EE,C8D8,DDEE,DDE9,DDEA,CBF2,DDED,B1CD,C0B6,BCBB,DDF1,DDF7,DDF6,DDEB,C5EE,DDFB,DEA4,DEA3,DDF8,C3EF,C2FB,D5E1,CEB5,DDFD,B2CC,C4E8,CADF,C7BE,DDFA,DDFC,DDFE,DEA2,B0AA,B1CE,DEAC,DEA6,BDB6,C8EF,DEA1,DEA5,DEA9,DEA8,DEA7,DEAD,D4CC,DEB3,DEAA,DEAE,C0D9,B1A1,DEB6,DEB1,DEB2,D1A6,DEB5,DEAF,DEB0,D0BD,DEB4,CAED,DEB9,DEB8,DEB7,DEBB,BDE5,B2D8,C3EA,DEBA,C5BA,DEBC,CCD9,B7AA,D4E5,DEBD,DEBF,C4A2,DEC1,DEBE,DEC0,D5BA,DEC2,F2AE,BBA2,C2B2,C5B0,C2C7,F2AF,D0E9,D3DD,EBBD,B3E6,F2B0,F2B1,CAAD,BAE7,F2B3,F2B5,F2B4,CBE4,CFBA,F2B2,CAB4,D2CF,C2EC,CEC3,F2B8,B0F6,F2B7,F2BE,B2CF,D1C1,F2BA,F2BC,D4E9,F2BB,F2B6,F2BF,F2BD,F2B9,F2C7,F2C4,F2C6,F2CA,F2C2,F2C0,F2C5,D6FB,F2C1,C7F9,C9DF,F2C8,B9C6,B5B0,F2C3,F2C9,F2D0,F2D6,BBD7,F2D5,CDDC,D6EB,F2D2,F2D4,B8F2,F2CB,F2CE,C2F9,D5DD,F2CC,F2CD,F2CF,F2D3,F2D9,D3BC,B6EA,CAF1,B7E4,F2D7,F2D8,F2DA,F2DD,F2DB,F2DC,D1D1,F2D1,CDC9,CECF,D6A9,F2E3,C3DB,F2E0,C0AF,F2EC,F2DE,F2E1,F2E8,F2E2,F2E7,F2E6,F2E9,F2DF,F2E4,F2EA,D3AC,F2E5,B2F5,F2F2,D0AB,F2F5,BBC8,F2F9,F2F0,F2F6,F2F8,F2FA,F2F3,F2F1,BAFB,B5FB,F2EF,F2F7,F2ED,F2EE,F2EB,F3A6,F3A3,F3A2,F2F4,C8DA,F2FB,F3A5,C3F8,F2FD,F3A7,F3A9,F3A4,F2FC,F3AB,F3AA,C2DD,F3AE,F3B0,F3A1,F3B1,F3AC,F3AF,F2FE,F3AD,F3B2,F3B4,F3A8,F3B3,F3B5,D0B7,F3B8,D9F9,F3B9,F3B7,C8E4,F3B6,F3BA,F3BB,B4C0,EEC3,F3BC,F3BD,D1AA,F4AC,D0C6,D0D0,D1DC,CFCE,BDD6,D1C3,BAE2,E1E9,D2C2,F1C2,B2B9,B1ED,F1C3,C9C0,B3C4,D9F2,CBA5,F1C4,D6D4,F1C5,F4C0,F1C6,D4AC,F1C7,B0C0,F4C1,F4C2,B4FC,C5DB,CCBB,D0E4,CDE0,F1C8,D9F3,B1BB,CFAE,B8A4,F1CA,F1CB,B2C3,C1D1,D7B0,F1C9,F1CC,F1CE,D9F6,D2E1,D4A3,F4C3,C8B9,F4C4,F1CD,F1CF,BFE3,F1D0,F1D4,F1D6,F1D1,C9D1,C5E1,C2E3,B9FC,F1D3,F1D5,B9D3,F1DB,BAD6,B0FD,F1D9,F1D8,F1D2,F1DA,F1D7,C8EC,CDCA,F1DD,E5BD,F1DC,F1DE,F1DF,CFE5,F4C5,BDF3,F1E0,F1E1,CEF7,D2AA,F1FB,B8B2,BCFB,B9DB,B9E6,C3D9,CAD3,EAE8,C0C0,BEF5,EAE9,EAEA,EAEB,EAEC,EAED,EAEE,EAEF,BDC7,F5FB,F5FD,F5FE,F5FC,BDE2,F6A1,B4A5,F6A2,F6A3,ECB2,D1D4,D9EA,F6A4,EEBA,D5B2,D3FE,CCDC,CAC4,E5C0,F6A5,BEAF,C6A9,DAA5,BCC6,B6A9,B8BC,C8CF,BCA5,DAA6,DAA7,CCD6,C8C3,DAA8,C6FD,D1B5,D2E9,D1B6,BCC7,BDB2,BBE4,DAA9,DAAA,D1C8,DAAB,D0ED,B6EF,C2DB,CBCF,B7ED,C9E8,B7C3,BEF7,D6A4,DAAC,DAAD,C6C0,D7E7,CAB6,D5A9,CBDF,D5EF,DAAE,D6DF,B4CA,DAB0,DAAF,D2EB,DAB1,DAB2,DAB3,CAD4,DAB4,CAAB,DAB5,DAB6,B3CF,D6EF,DAB7,BBB0,B5AE,DAB8,DAB9,B9EE,D1AF,D2E8,DABA,B8C3,CFEA,B2EF,DABB,DABC,BDEB,CEDC,D3EF,DABD,CEF3,DABE,D3D5,BBE5,DABF,CBB5,CBD0,DAC0,C7EB,D6EE,DAC1,C5B5,B6C1,DAC2,B7CC,BFCE,DAC3,DAC4,CBAD,DAC5,B5F7,DAC6,C1C2,D7BB,DAC7,CCB8,D2EA,C4B1,DAC8,B5FD,BBD1,DAC9,D0B3,DACA,DACB,CEBD,DACC,DACD,DACE,B2F7,DAD1,DACF,D1E8,DAD0,C3D5,DAD2,DAD3,DAD4,DAD5,D0BB,D2A5,B0F9,DAD6,C7AB,DAD7,BDF7,C3A1,DAD8,DAD9,C3FD,CCB7,DADA,DADB,C0BE,C6D7,DADC,DADD,C7B4,DADE,DADF,B9C8,BBED,B6B9,F4F8,F4F9,CDE3,F5B9,EBE0,CFF3,BBBF,BAC0,D4A5,E1D9,F5F4,B1AA,B2F2,F5F5,F5F7,BAD1,F5F6,C3B2,F5F9,F5F8,B1B4,D5EA,B8BA,B9B1,B2C6,D4F0,CFCD,B0DC,D5CB,BBF5,D6CA,B7B7,CCB0,C6B6,B1E1,B9BA,D6FC,B9E1,B7A1,BCFA,EADA,EADB,CCF9,B9F3,EADC,B4FB,C3B3,B7D1,BAD8,EADD,D4F4,EADE,BCD6,BBDF,EADF,C1DE,C2B8,D4DF,D7CA,EAE0,EAE1,EAE4,EAE2,EAE3,C9DE,B8B3,B6C4,EAE5,CAEA,C9CD,B4CD,E2D9,C5E2,EAE6,C0B5,D7B8,EAE7,D7AC,C8FC,D8D3,D8CD,D4DE,D4F9,C9C4,D3AE,B8D3,B3E0,C9E2,F4F6,BAD5,F4F7,D7DF,F4F1,B8B0,D5D4,B8CF,C6F0,B3C3,F4F2,B3AC,D4BD,C7F7,F4F4,F4F3,CCCB,C8A4,F4F5,D7E3,C5BF,F5C0,F5BB,F5C3,F5C2,D6BA,F5C1,D4BE,F5C4,F5CC,B0CF,B5F8,F5C9,F5CA,C5DC,F5C5,F5C6,F5C7,F5CB,BEE0,F5C8,B8FA,F5D0,F5D3,BFE7,B9F2,F5BC,F5CD,C2B7,CCF8,BCF9,F5CE,F5CF,F5D1,B6E5,F5D2,F5D5,F5BD,F5D4,D3BB,B3EC,CCA4,F5D6,F5D7,BEE1,F5D8,CCDF,F5DB,B2C8,D7D9,F5D9,F5DA,F5DC,F5E2,F5E0,F5DF,F5DD,F5E1,F5DE,F5E4,F5E5,CCE3,E5BF,B5B8,F5E3,F5E8,CCA3,F5E6,F5E7,F5BE,B1C4,F5BF,B5C5,B2E4,F5EC,F5E9,B6D7,F5ED,F5EA,F5EB,B4DA,D4EA,F5EE,B3F9,F5EF,F5F1,F5F0,F5F2,F5F3,C9ED,B9AA,C7FB,B6E3,CCC9,EAA6,B3B5,D4FE,B9EC,D0F9,E9ED,D7AA,E9EE,C2D6,C8ED,BAE4,E9EF,E9F0,E9F1,D6E1,E9F2,E9F3,E9F5,E9F4,E9F6,E9F7,C7E1,E9F8,D4D8,E9F9,BDCE,E9FA,E9FB,BDCF,E9FC,B8A8,C1BE,E9FD,B1B2,BBD4,B9F5,E9FE,EAA1,EAA2,EAA3,B7F8,BCAD,CAE4,E0CE,D4AF,CFBD,D5B7,EAA4,D5DE,EAA5,D0C1,B9BC,B4C7,B1D9,C0B1,B1E6,B1E7,B1E8,B3BD,C8E8,E5C1,B1DF,C1C9,B4EF,C7A8,D3D8,C6F9,D1B8,B9FD,C2F5,D3AD,D4CB,BDFC,E5C2,B7B5,E5C3,BBB9,D5E2,BDF8,D4B6,CEA5,C1AC,B3D9,CCF6,E5C6,E5C4,E5C8,E5CA,E5C7,B5CF,C6C8,B5FC,E5C5,CAF6,E5C9,C3D4,B1C5,BCA3,D7B7,CDCB,CBCD,CACA,CCD3,E5CC,E5CB,C4E6,D1A1,D1B7,E5CD,E5D0,CDB8,D6F0,E5CF,B5DD,CDBE,E5D1,B6BA,CDA8,B9E4,CAC5,B3D1,CBD9,D4EC,E5D2,B7EA,E5CE,E5D5,B4FE,E5D6,E5D3,E5D4,D2DD,C2DF,B1C6,D3E2,B6DD,CBEC,E5D7,D3F6,B1E9,B6F4,E5DA,E5D8,E5D9,B5C0,D2C5,E5DC,E5DE,E5DD,C7B2,D2A3,E5DB,D4E2,D5DA,E5E0,D7F1,E5E1,B1DC,D1FB,E5E2,E5E4,E5E3,E5E5,D2D8,B5CB,E7DF,DAF5,DAF8,DAF6,DAF7,DAFA,D0CF,C4C7,B0EE,D0B0,DAF9,D3CA,BAAA,DBA2,C7F1,DAFC,DAFB,C9DB,DAFD,DBA1,D7DE,DAFE,C1DA,DBA5,D3F4,DBA7,DBA4,DBA8,BDBC,C0C9,DBA3,DBA6,D6A3,DBA9,DBAD,DBAE,DBAC,BAC2,BFA4,DBAB,DBAA,D4C7,B2BF,DBAF,B9F9,DBB0,B3BB,B5A6,B6BC,DBB1,B6F5,DBB2,B1C9,DBB4,DBB3,DBB5,DBB7,DBB6,DBB8,DBB9,DBBA,D3CF,F4FA,C7F5,D7C3,C5E4,F4FC,F4FD,F4FB,BEC6,D0EF,B7D3,D4CD,CCAA,F5A2,F5A1,BAA8,F4FE,CBD6,F5A4,C0D2,B3EA,CDAA,F5A5,F5A3,BDB4,F5A8,F5A9,BDCD,C3B8,BFE1,CBE1,F5AA,F5A6,F5A7,C4F0,F5AC,B4BC,D7ED,B4D7,F5AB,F5AE,F5AD,F5AF,D0D1,C3D1,C8A9,F5B0,F5B1,F5B2,F5B3,F5B4,F5B5,F5B7,F5B6,F5B8,B2C9,D3D4,CACD,C0EF,D6D8,D2B0,C1BF,BDF0,B8AA,BCF8,F6C6,F6C7,F6C8,F6C9,F6CA,F6CC,F6CB,F7E9,F6CD,F6CE,EEC4,EEC5,EEC6,D5EB,B6A4,EEC8,EEC7,EEC9,EECA,C7A5,EECB,EECC,B7B0,B5F6,EECD,EECF,EECE,B8C6,EED0,EED1,EED2,B6DB,B3AE,D6D3,C4C6,B1B5,B8D6,EED3,EED4,D4BF,C7D5,BEFB,CED9,B9B3,EED6,EED5,EED8,EED7,C5A5,EED9,EEDA,C7AE,EEDB,C7AF,EEDC,B2A7,EEDD,EEDE,EEDF,EEE0,EEE1,D7EA,EEE2,EEE3,BCD8,EEE4,D3CB,CCFA,B2AC,C1E5,EEE5,C7A6,C3AD,EEE6,EEE7,EEE8,EEE9,EEEA,EEEB,EEEC,EEED,EEEE,EEEF,EEF0,EEF1,EEF2,EEF4,EEF3,EEF5,CDAD,C2C1,EEF6,EEF7,EEF8,D5A1,EEF9,CFB3,EEFA,EEFB,EEFC,EEFD,EFA1,EEFE,EFA2,B8F5,C3FA,EFA3,EFA4,BDC2,D2BF,B2F9,EFA5,EFA6,EFA7,D2F8,EFA8,D6FD,EFA9,C6CC,EFAA,EFAB,C1B4,EFAC,CFFA,CBF8,EFAE,EFAD,B3FA,B9F8,EFAF,EFB0,D0E2,EFB1,EFB2,B7E6,D0BF,EFB3,EFB4,EFB5,C8F1,CCE0,EFB6,EFB7,EFB8,EFB9,EFBA,D5E0,EFBB,B4ED,C3AA,EFBC,EFBD,EFBE,EFBF,CEFD,EFC0,C2E0,B4B8,D7B6,BDF5,CFC7,EFC3,EFC1,EFC2,EFC4,B6A7,BCFC,BEE2,C3CC,EFC5,EFC6,EFC7,EFCF,EFC8,EFC9,EFCA,C7C2,EFF1,B6CD,EFCB,EFCC,EFCD,B6C6,C3BE,EFCE,EFD0,EFD1,EFD2,D5F2,EFD3,C4F7,EFD4,C4F8,EFD5,EFD6,B8E4,B0F7,EFD7,EFD8,EFD9,EFDA,EFDB,EFDC,EFDD,EFDE,BEB5,EFE1,EFDF,EFE0,EFE2,EFE3,C1CD,EFE4,EFE5,EFE6,EFE7,EFE8,EFE9,EFEA,EFEB,EFEC,C0D8,EFED,C1AD,EFEE,EFEF,EFF0,CFE2,B3A4,C3C5,E3C5,C9C1,E3C6,B1D5,CECA,B4B3,C8F2,E3C7,CFD0,E3C8,BCE4,E3C9,E3CA,C3C6,D5A2,C4D6,B9EB,CEC5,E3CB,C3F6,E3CC,B7A7,B8F3,BAD2,E3CD,E3CE,D4C4,E3CF,E3D0,D1CB,E3D1,E3D2,E3D3,E3D4,D1D6,E3D5,B2FB,C0BB,E3D6,C0AB,E3D7,E3D8,E3D9,E3DA,E3DB,B8B7,DAE2,B6D3,DAE4,DAE3,DAE6,C8EE,DAE5,B7C0,D1F4,D2F5,D5F3,BDD7,D7E8,DAE8,DAE7,B0A2,CDD3,DAE9,B8BD,BCCA,C2BD,C2A4,B3C2,DAEA,C2AA,C4B0,BDB5,CFDE,DAEB,C9C2,B1DD,DAEC,B6B8,D4BA,B3FD,DAED,D4C9,CFD5,C5E3,DAEE,DAEF,DAF0,C1EA,CCD5,CFDD,D3E7,C2A1,DAF1,CBE5,DAF2,CBE6,D2FE,B8F4,DAF3,B0AF,CFB6,D5CF,CBED,DAF4,E3C4,C1A5,F6BF,F6C0,F6C1,C4D1,C8B8,D1E3,D0DB,D1C5,BCAF,B9CD,EFF4,B4C6,D3BA,F6C2,B3FB,F6C3,B5F1,F6C5,D3EA,F6A7,D1A9,F6A9,F6A8,C1E3,C0D7,B1A2,CEED,D0E8,F6AB,CFF6,F6AA,D5F0,F6AC,C3B9,BBF4,F6AE,F6AD,C4DE,C1D8,CBAA,CFBC,F6AF,F6B0,F6B1,C2B6,B0D4,C5F9,F6B2,C7E0,F6A6,BEB8,BEB2,B5E5,B7C7,BFBF,C3D2,C3E6,D8CC,B8EF,BDF9,D1A5,B0D0,F7B0,F7B1,D0AC,B0B0,F7B2,F7B3,F7B4,C7CA,BECF,F7B7,F7B6,B1DE,F7B5,F7B8,F7B9,CEA4,C8CD,BAAB,E8B8,E8B9,E8BA,BEC2,D2F4,D4CF,C9D8,D2B3,B6A5,C7EA,F1FC,CFEE,CBB3,D0EB,E7EF,CDE7,B9CB,B6D9,F1FD,B0E4,CBCC,F1FE,D4A4,C2AD,C1EC,C6C4,BEB1,F2A1,BCD5,F2A2,F2A3,F2A4,D2C3,C6B5,CDC7,F2A5,D3B1,BFC5,CCE2,F2A6,F2A7,D1D5,B6EE,F2A8,F2A9,B5DF,F2AA,F2AB,B2FC,F2AC,F2AD,C8A7,B7E7,ECA9,ECAA,ECAB,ECAC,C6AE,ECAD,ECAE,B7C9,CAB3,E2B8,F7CF,F7D0,B2CD,F7D1,F7D3,F7D2,E2BB,BCA2,E2BC,E2BD,E2BE,E2BF,E2C0,E2C1,B7B9,D2FB,BDA4,CACE,B1A5,CBC7,E2C2,B6FC,C8C4,E2C3,BDC8,B1FD,E2C4,B6F6,E2C5,C4D9,E2C6,CFDA,B9DD,E2C7,C0A1,E2C8,B2F6,E2C9,C1F3,E2CA,E2CB,C2F8,E2CC,E2CD,E2CE,CAD7,D8B8,D9E5,CFE3,F0A5,DCB0,C2ED,D4A6,CDD4,D1B1,B3DB,C7FD,B2B5,C2BF,E6E0,CABB,E6E1,E6E2,BED4,E6E3,D7A4,CDD5,E6E5,BCDD,E6E4,E6E6,E6E7,C2EE,BDBE,E6E8,C2E6,BAA7,E6E9,E6EA,B3D2,D1E9,BFA5,E6EB,C6EF,E6EC,E6ED,E6EE,C6AD,E6EF,C9A7,E6F0,E6F1,E6F2,E5B9,E6F3,E6F4,C2E2,E6F5,E6F6,D6E8,E6F7,E6F8,B9C7,F7BB,F7BA,F7BE,F7BC,BAA1,F7BF,F7C0,F7C2,F7C1,F7C4,F7C3,F7C5,F7C6,F7C7,CBE8,B8DF,F7D4,F7D5,F7D6,F7D8,F7DA,F7D7,F7DB,F7D9,D7D7,F7DC,F7DD,F7DE,F7DF,F7E0,DBCB,D8AA,E5F7,B9ED,BFFD,BBEA,F7C9,C6C7,F7C8,F7CA,F7CC,F7CB,F7CD,CEBA,F7CE,C4A7,D3E3,F6CF,C2B3,F6D0,F6D1,F6D2,F6D3,F6D4,F6D6,B1AB,F6D7,F6D8,F6D9,F6DA,F6DB,F6DC,F6DD,F6DE,CFCA,F6DF,F6E0,F6E1,F6E2,F6E3,F6E4,C0F0,F6E5,F6E6,F6E7,F6E8,F6E9,F6EA,F6EB,F6EC,F6ED,F6EE,F6EF,F6F0,F6F1,F6F2,F6F3,F6F4,BEA8,F6F5,F6F6,F6F7,F6F8,C8FA,F6F9,F6FA,F6FB,F6FC,F6FD,F6FE,F7A1,F7A2,F7A3,F7A4,F7A5,F7A6,F7A7,F7A8,B1EE,F7A9,F7AA,F7AB,F7AC,F7AD,C1DB,F7AE,F7AF,C4F1,F0AF,BCA6,F0B0,C3F9,C5B8,D1BB,F0B1,F0B2,F0B3,F0B4,F0B5,D1BC,D1EC,F0B7,F0B6,D4A7,CDD2,F0B8,F0BA,F0B9,F0BB,F0BC,B8EB,F0BD,BAE8,F0BE,F0BF,BEE9,F0C0,B6EC,F0C1,F0C2,F0C3,F0C4,C8B5,F0C5,F0C6,F0C7,C5F4,F0C8,F0C9,F0CA,F7BD,F0CB,F0CC,F0CD,F0CE,F0CF,BAD7,F0D0,F0D1,F0D2,F0D3,F0D4,F0D5,F0D6,F0D8,D3A5,F0D7,F0D9,F5BA,C2B9,F7E4,F7E5,F7E6,F7E7,F7E8,C2B4,F7EA,F7EB,C2F3,F4F0,F4EF,C2E9,F7E1,F7E2,BBC6,D9E4,CAF2,C0E8,F0A4,BADA,C7AD,C4AC,F7EC,F7ED,F7EE,F7F0,F7EF,F7F1,F7F4,F7F3,F7F2,F7F5,F7F6,EDE9,EDEA,EDEB,F6BC,F6BD,F6BE,B6A6,D8BE,B9C4,D8BB,DCB1,CAF3,F7F7,F7F8,F7F9,F7FB,F7FA,B1C7,F7FC,F7FD,F7FE,C6EB,ECB4,B3DD,F6B3,F6B4,C1E4,F6B5,F6B6,F6B7,F6B8,F6B9,F6BA,C8A3,F6BB,C1FA,B9A8,EDE8,B9EA,D9DF,A3A1,A3A2,A3A3,A1E7,A3A5,A3A6,A3A7,A3A8,A3A9,A3AA,A3AB,A3AC,A3AD,A3AE,A3AF,A3B0,A3B1,A3B2,A3B3,A3B4,A3B5,A3B6,A3B7,A3B8,A3B9,A3BA,A3BB,A3BC,A3BD,A3BE,A3BF,A3C0,A3C1,A3C2,A3C3,A3C4,A3C5,A3C6,A3C7,A3C8,A3C9,A3CA,A3CB,A3CC,A3CD,A3CE,A3CF,A3D0,A3D1,A3D2,A3D3,A3D4,A3D5,A3D6,A3D7,A3D8,A3D9,A3DA,A3DB,A3DC,A3DD,A3DE,A3DF,A3E0,A3E1,A3E2,A3E3,A3E4,A3E5,A3E6,A3E7,A3E8,A3E9,A3EA,A3EB,A3EC,A3ED,A3EE,A3EF,A3F0,A3F1,A3F2,A3F3,A3F4,A3F5,A3F6,A3F7,A3F8,A3F9,A3FA,A3FB,A3FC,A3FD,A1AB,A1E9,A1EA,A3FE,A3A4".substr(n, 4)),
    parseInt(t, 16)
  }
  var i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
  function r(e) {
    var t, n, r, o, E, a = "", C = "", s = "", B = 0;
    do {
      r = (t = e.charCodeAt(B++)) >> 2,
      o = (3 & t) << 4 | (n = e.charCodeAt(B++)) >> 4,
      E = (15 & n) << 2 | (C = e.charCodeAt(B++)) >> 6,
      s = 63 & C,
      isNaN(n) ? E = s = 64 : isNaN(C) && (s = 64),
      a = a + i.charAt(r) + i.charAt(o) + i.charAt(E) + i.charAt(s),
      t = n = C = "",
      r = o = E = s = ""
    } while (B < e.length);
    return a
  }
  t.encode64 = r,
  t.decode64 = function(e) {
    var t, n, r, o, E = "", a = "", C = "", s = 0;
    if (e.length % 4 != 0)
      return "";
    if (/[^A-Za-z0-9\+\/\=]/g.exec(e))
      return "";
    do {
      t = i.indexOf(e.charAt(s++)) << 2 | (r = i.indexOf(e.charAt(s++))) >> 4,
      n = (15 & r) << 4 | (o = i.indexOf(e.charAt(s++))) >> 2,
      a = (3 & o) << 6 | (C = i.indexOf(e.charAt(s++))),
      E += String.fromCharCode(t),
      64 != o && (E += String.fromCharCode(n)),
      64 != C && (E += String.fromCharCode(a)),
      t = n = a = "",
      r = o = C = ""
    } while (s < e.length);
    return E
  }
  ,
  t.ThunderEncode = function(e) {
    if (/^thunder:\/\//.test(e))
      return e;
    var t = e;
    return "thunder://" + r(function(e) {
      for (var t = e.length, i = "", r = 0; r < t; r++) {
        var o = e.charCodeAt(r);
        if (o < 0 && (o += 65536),
        o > 127 && (o = n(o)),
        o > 255) {
          var E = 65280 & o;
          E >>= 8;
          var a = 255 & o;
          i += String.fromCharCode(E) + String.fromCharCode(a)
        } else
          i += String.fromCharCode(o)
      }
      return i
    }("AA" + j_xunlei_q.trim(t) + "ZZ"))
  }
  ,
  t.ThunderDecode = function(e) {
    try {
      if ("thunder://" != e.substr(0, 10))
        return e;
      var n = t.decode64(e.substr(10));
      return n.length < 6 ? "" : decodeURI(n.substr(2, n.length - 4))
    } catch (e) {
      return ""
    }
  }
}
, function(e, t) {
  var n = {
    "default": {
      apk: "http://m.down.sandai.net/MobileThunder/Android_6.12.2.6491/thunder-6.12.2.6491-stable-release-jiagu-thunderlink5.apk",
      ios: "http://ithunder-ota.a.88cdn.com/download-guide/index.html?channel=thunderlink",
      ios_call: "xunleiapp://m.xunlei.com/",
      mac: "http://down.sandai.net/mac/thunder_mac.dmg"
    },
    server: null,
    serverPickOn: null,
    url: "https://api-shoulei-ssl.xunlei.com/pss/static/config_json_fa07/thunder_page_apk_download_url_config.json"
  };
  try {
    j_xunlei_q.ajax({
      url: n.url,
      timeout: 3e3,
      success: function(e) {
        for (var t in n.server = e,
        n.server) {
          if (n.serverPickOn)
            break;
          n.serverPickOn = n.server[t],
          n.serverPickOn.ios && (n["default"].ios = n.serverPickOn.ios),
          n.serverPickOn.ios_call && (n["default"].ios_call = n.serverPickOn.ios_call),
          n.serverPickOn.mac && (n["default"].mac = n.serverPickOn.mac)
        }
      }
    })
  } catch (e) {}
  e.exports = n
}
, function(e, t) {
  e.exports = {
    exceptPath: "",
    pid: "11111"
  }
}
, function(e, t, n) {
  e.exports = n(37).Promise
}
, function(e, t, n) {
  function i(e) {
    return (i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
      return typeof e
    }
    : function(e) {
      return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
    }
    )(e)
  }
  var r, o, E = n(0), a = {};
  a.createUrlByParam = function(e, t) {
    var n = [];
    for (var i in t)
      n.push(i + "=" + encodeURIComponent(t[i]));
    var r = n.join("&");
    return e.indexOf("?") > -1 ? e + "&" + r : e + "?" + r
  }
  ,
  a.loadJS = (r = {},
  o = function() {}
  ,
  function(e, t) {
    if ("function" != typeof t && (t = o),
    1 !== r[e]) {
      var n = document.createElement("script");
      n.src = e,
      n.async = !0,
      document.body.appendChild(n),
      n.onload = function() {
        t()
      }
      ,
      r[e] = 1
    } else
      t()
  }
  ),
  a.createQrcode = function() {
    var e = {}
      , t = "http://mobile.xunlei.com/m/channel.html?from=ThunderLink_PCPopUp";
    return function(n, r) {
      var o = (r = r || {}).size || 90
        , C = r.text || t
        , s = r.download || "";
      "" !== s && (C = a.createUrlByParam(C, {
        taskDownload: s,
        scheme: "xunleiapp://xunlei.com/sharePage?shareH5=share_H5"
      }));
      var B = C;
      if (e[C])
        return B = e[C],
        void F();
      var D = !1
        , u = setTimeout(function() {
        D = !0,
        F()
      }, 4e3)
        , A = E.getUserBrowser()
        , l = E.getIEVersion()
        , c = ("IE" == A && l < 10 ? "http" : "https") + "://api-shoulei-ssl.xunlei.com/xlppc.dljgo.api/v2/create";
      function F() {
        B.length > t.length && (B = t),
        j_xunlei_q("#" + n).html(""),
        new QRCode(document.querySelector("#" + n),{
          text: B,
          width: o,
          height: o,
          colorDark: "#000000",
          colorLight: "#ffffff",
          correctLevel: QRCode.CorrectLevel.H
        }),
        j_xunlei_q("#" + n + " table td").css({
          border: "0px",
          padding: "0px"
        })
      }
      j_xunlei_q.support.cors = !0,
      j_xunlei_q.ajax({
        type: "POST",
        dataType: "json",
        contentType: "application/json",
        url: c,
        data: JSON.stringify({
          url: C,
          source: "thunderlink",
          timeout: 120
        }),
        success: function(t) {
          clearTimeout(u),
          D || (t && "object" === i(t) && (e[C] = B = t.dlj),
          F())
        }
      })
    }
  }(),
  a.load_pc_xunlei_success = function(e) {}
  ,
  e.exports = a
}
, function(e, t, n) {
  (function(e) {
    var n, i, r, o;
    function E(e) {
      return (E = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
        return typeof e
      }
      : function(e) {
        return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
      }
      )(e)
    }
    o = function() {
      return function(e) {
        function t(i) {
          if (n[i])
            return n[i].exports;
          var r = n[i] = {
            i: i,
            l: !1,
            exports: {}
          };
          return e[i].call(r.exports, r, r.exports, t),
          r.l = !0,
          r.exports
        }
        var n = {};
        return t.m = e,
        t.c = n,
        t.i = function(e) {
          return e
        }
        ,
        t.d = function(e, n, i) {
          t.o(e, n) || Object.defineProperty(e, n, {
            configurable: !1,
            enumerable: !0,
            get: i
          })
        }
        ,
        t.n = function(e) {
          var n = e && e.__esModule ? function() {
            return e["default"]
          }
          : function() {
            return e
          }
          ;
          return t.d(n, "a", n),
          n
        }
        ,
        t.o = function(e, t) {
          return Object.prototype.hasOwnProperty.call(e, t)
        }
        ,
        t.p = "",
        t(t.s = 3)
      }([function(e, t, n) {
        var i, r, o;
        r = [e, n(7)],
        i = function(e, t) {
          "use strict";
          var n = function(e) {
            return e && e.__esModule ? e : {
              "default": e
            }
          }(t)
            , i = "function" == typeof Symbol && "symbol" == E(Symbol.iterator) ? function(e) {
            return E(e)
          }
          : function(e) {
            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : E(e)
          }
            , r = function() {
            function e(e, t) {
              for (var n = 0; n < t.length; n++) {
                var i = t[n];
                i.enumerable = i.enumerable || !1,
                i.configurable = !0,
                "value"in i && (i.writable = !0),
                Object.defineProperty(e, i.key, i)
              }
            }
            return function(t, n, i) {
              return n && e(t.prototype, n),
              i && e(t, i),
              t
            }
          }()
            , o = function() {
            function e(t) {
              (function(e, t) {
                if (!(e instanceof t))
                  throw new TypeError("Cannot call a class as a function")
              }
              )(this, e),
              this.resolveOptions(t),
              this.initSelection()
            }
            return r(e, [{
              key: "resolveOptions",
              value: function() {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                this.action = e.action,
                this.container = e.container,
                this.emitter = e.emitter,
                this.target = e.target,
                this.text = e.text,
                this.trigger = e.trigger,
                this.selectedText = ""
              }
            }, {
              key: "initSelection",
              value: function() {
                this.text ? this.selectFake() : this.target && this.selectTarget()
              }
            }, {
              key: "selectFake",
              value: function() {
                var e = this
                  , t = "rtl" == document.documentElement.getAttribute("dir");
                this.removeFake(),
                this.fakeHandlerCallback = function() {
                  return e.removeFake()
                }
                ,
                this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0,
                this.fakeElem = document.createElement("textarea"),
                this.fakeElem.style.fontSize = "12pt",
                this.fakeElem.style.border = "0",
                this.fakeElem.style.padding = "0",
                this.fakeElem.style.margin = "0",
                this.fakeElem.style.position = "absolute",
                this.fakeElem.style[t ? "right" : "left"] = "-9999px";
                var i = window.pageYOffset || document.documentElement.scrollTop;
                this.fakeElem.style.top = i + "px",
                this.fakeElem.setAttribute("readonly", ""),
                this.fakeElem.value = this.text,
                this.container.appendChild(this.fakeElem),
                this.selectedText = (0,
                n["default"])(this.fakeElem),
                this.copyText()
              }
            }, {
              key: "removeFake",
              value: function() {
                this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback),
                this.fakeHandler = null,
                this.fakeHandlerCallback = null),
                this.fakeElem && (this.container.removeChild(this.fakeElem),
                this.fakeElem = null)
              }
            }, {
              key: "selectTarget",
              value: function() {
                this.selectedText = (0,
                n["default"])(this.target),
                this.copyText()
              }
            }, {
              key: "copyText",
              value: function() {
                var e = void 0;
                try {
                  e = document.execCommand(this.action)
                } catch (t) {
                  e = !1
                }
                this.handleResult(e)
              }
            }, {
              key: "handleResult",
              value: function(e) {
                this.emitter.emit(e ? "success" : "error", {
                  action: this.action,
                  text: this.selectedText,
                  trigger: this.trigger,
                  clearSelection: this.clearSelection.bind(this)
                })
              }
            }, {
              key: "clearSelection",
              value: function() {
                this.trigger && this.trigger.focus(),
                window.getSelection().removeAllRanges()
              }
            }, {
              key: "destroy",
              value: function() {
                this.removeFake()
              }
            }, {
              key: "action",
              set: function() {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "copy";
                if (this._action = e,
                "copy" !== this._action && "cut" !== this._action)
                  throw new Error('Invalid "action" value, use either "copy" or "cut"')
              },
              get: function() {
                return this._action
              }
            }, {
              key: "target",
              set: function(e) {
                if (void 0 !== e) {
                  if (!e || "object" !== (void 0 === e ? "undefined" : i(e)) || 1 !== e.nodeType)
                    throw new Error('Invalid "target" value, use a valid Element');
                  if ("copy" === this.action && e.hasAttribute("disabled"))
                    throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
                  if ("cut" === this.action && (e.hasAttribute("readonly") || e.hasAttribute("disabled")))
                    throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
                  this._target = e
                }
              },
              get: function() {
                return this._target
              }
            }]),
            e
          }();
          e.exports = o
        }
        ,
        void 0 !== (o = "function" == typeof i ? i.apply(t, r) : i) && (e.exports = o)
      }
      , function(e, t, n) {
        var i = n(6)
          , r = n(5);
        e.exports = function(e, t, n) {
          if (!e && !t && !n)
            throw new Error("Missing required arguments");
          if (!i.string(t))
            throw new TypeError("Second argument must be a String");
          if (!i.fn(n))
            throw new TypeError("Third argument must be a Function");
          if (i.node(e))
            return function(e, t, n) {
              return e.addEventListener(t, n),
              {
                destroy: function() {
                  e.removeEventListener(t, n)
                }
              }
            }(e, t, n);
          if (i.nodeList(e))
            return function(e, t, n) {
              return Array.prototype.forEach.call(e, function(e) {
                e.addEventListener(t, n)
              }),
              {
                destroy: function() {
                  Array.prototype.forEach.call(e, function(e) {
                    e.removeEventListener(t, n)
                  })
                }
              }
            }(e, t, n);
          if (i.string(e))
            return function(e, t, n) {
              return r(document.body, e, t, n)
            }(e, t, n);
          throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")
        }
      }
      , function(e, t) {
        function n() {}
        n.prototype = {
          on: function(e, t, n) {
            var i = this.e || (this.e = {});
            return (i[e] || (i[e] = [])).push({
              fn: t,
              ctx: n
            }),
            this
          },
          once: function(e, t, n) {
            function i() {
              r.off(e, i),
              t.apply(n, arguments)
            }
            var r = this;
            return i._ = t,
            this.on(e, i, n)
          },
          emit: function(e) {
            for (var t = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[e] || []).slice(), i = 0, r = n.length; i < r; i++)
              n[i].fn.apply(n[i].ctx, t);
            return this
          },
          off: function(e, t) {
            var n = this.e || (this.e = {})
              , i = n[e]
              , r = [];
            if (i && t)
              for (var o = 0, E = i.length; o < E; o++)
                i[o].fn !== t && i[o].fn._ !== t && r.push(i[o]);
            return r.length ? n[e] = r : delete n[e],
            this
          }
        },
        e.exports = n
      }
      , function(e, t, n) {
        var i, r, o;
        r = [e, n(0), n(2), n(1)],
        void 0 !== (o = "function" == typeof (i = function(e, t, n, i) {
          "use strict";
          function r(e) {
            return e && e.__esModule ? e : {
              "default": e
            }
          }
          function o(e, t) {
            var n = "data-clipboard-" + e;
            if (t.hasAttribute(n))
              return t.getAttribute(n)
          }
          var a = r(t)
            , C = r(n)
            , s = r(i)
            , B = "function" == typeof Symbol && "symbol" == E(Symbol.iterator) ? function(e) {
            return E(e)
          }
          : function(e) {
            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : E(e)
          }
            , D = function() {
            function e(e, t) {
              for (var n = 0; n < t.length; n++) {
                var i = t[n];
                i.enumerable = i.enumerable || !1,
                i.configurable = !0,
                "value"in i && (i.writable = !0),
                Object.defineProperty(e, i.key, i)
              }
            }
            return function(t, n, i) {
              return n && e(t.prototype, n),
              i && e(t, i),
              t
            }
          }()
            , u = function(e) {
            function t(e, n) {
              !function(e, t) {
                if (!(e instanceof t))
                  throw new TypeError("Cannot call a class as a function")
              }(this, t);
              var i = function(e, t) {
                if (!e)
                  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !t || "object" != E(t) && "function" != typeof t ? e : t
              }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));
              return i.resolveOptions(n),
              i.listenClick(e),
              i
            }
            return function(e, t) {
              if ("function" != typeof t && null !== t)
                throw new TypeError("Super expression must either be null or a function, not " + E(t));
              e.prototype = Object.create(t && t.prototype, {
                constructor: {
                  value: e,
                  enumerable: !1,
                  writable: !0,
                  configurable: !0
                }
              }),
              t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
            }(t, e),
            D(t, [{
              key: "resolveOptions",
              value: function() {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                this.action = "function" == typeof e.action ? e.action : this.defaultAction,
                this.target = "function" == typeof e.target ? e.target : this.defaultTarget,
                this.text = "function" == typeof e.text ? e.text : this.defaultText,
                this.container = "object" === B(e.container) ? e.container : document.body
              }
            }, {
              key: "listenClick",
              value: function(e) {
                var t = this;
                this.listener = (0,
                s["default"])(e, "click", function(e) {
                  return t.onClick(e)
                })
              }
            }, {
              key: "onClick",
              value: function(e) {
                var t = e.delegateTarget || e.currentTarget;
                this.clipboardAction && (this.clipboardAction = null),
                this.clipboardAction = new a["default"]({
                  action: this.action(t),
                  target: this.target(t),
                  text: this.text(t),
                  container: this.container,
                  trigger: t,
                  emitter: this
                })
              }
            }, {
              key: "defaultAction",
              value: function(e) {
                return o("action", e)
              }
            }, {
              key: "defaultTarget",
              value: function(e) {
                var t = o("target", e);
                if (t)
                  return document.querySelector(t)
              }
            }, {
              key: "defaultText",
              value: function(e) {
                return o("text", e)
              }
            }, {
              key: "destroy",
              value: function() {
                this.listener.destroy(),
                this.clipboardAction && (this.clipboardAction.destroy(),
                this.clipboardAction = null)
              }
            }], [{
              key: "isSupported",
              value: function() {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"]
                  , t = "string" == typeof e ? [e] : e
                  , n = !!document.queryCommandSupported;
                return t.forEach(function(e) {
                  n = n && !!document.queryCommandSupported(e)
                }),
                n
              }
            }]),
            t
          }(C["default"]);
          e.exports = u
        }
        ) ? i.apply(t, r) : i) && (e.exports = o)
      }
      , function(e, t) {
        var n = 9;
        if ("undefined" != typeof Element && !Element.prototype.matches) {
          var i = Element.prototype;
          i.matches = i.matchesSelector || i.mozMatchesSelector || i.msMatchesSelector || i.oMatchesSelector || i.webkitMatchesSelector
        }
        e.exports = function(e, t) {
          for (; e && e.nodeType !== n; ) {
            if ("function" == typeof e.matches && e.matches(t))
              return e;
            e = e.parentNode
          }
        }
      }
      , function(e, t, n) {
        function i(e, t, n, i, o) {
          var E = r.apply(this, arguments);
          return e.addEventListener(n, E, o),
          {
            destroy: function() {
              e.removeEventListener(n, E, o)
            }
          }
        }
        function r(e, t, n, i) {
          return function(n) {
            n.delegateTarget = o(n.target, t),
            n.delegateTarget && i.call(e, n)
          }
        }
        var o = n(4);
        e.exports = function(e, t, n, r, o) {
          return "function" == typeof e.addEventListener ? i.apply(null, arguments) : "function" == typeof n ? i.bind(null, document).apply(null, arguments) : ("string" == typeof e && (e = document.querySelectorAll(e)),
          Array.prototype.map.call(e, function(e) {
            return i(e, t, n, r, o)
          }))
        }
      }
      , function(e, t) {
        t.node = function(e) {
          return void 0 !== e && e instanceof HTMLElement && 1 === e.nodeType
        }
        ,
        t.nodeList = function(e) {
          var n = Object.prototype.toString.call(e);
          return void 0 !== e && ("[object NodeList]" === n || "[object HTMLCollection]" === n) && "length"in e && (0 === e.length || t.node(e[0]))
        }
        ,
        t.string = function(e) {
          return "string" == typeof e || e instanceof String
        }
        ,
        t.fn = function(e) {
          return "[object Function]" === Object.prototype.toString.call(e)
        }
      }
      , function(e, t) {
        e.exports = function(e) {
          var t;
          if ("SELECT" === e.nodeName)
            e.focus(),
            t = e.value;
          else if ("INPUT" === e.nodeName || "TEXTAREA" === e.nodeName) {
            var n = e.hasAttribute("readonly");
            n || e.setAttribute("readonly", ""),
            e.select(),
            e.setSelectionRange(0, e.value.length),
            n || e.removeAttribute("readonly"),
            t = e.value
          } else {
            e.hasAttribute("contenteditable") && e.focus();
            var i = window.getSelection()
              , r = document.createRange();
            r.selectNodeContents(e),
            i.removeAllRanges(),
            i.addRange(r),
            t = i.toString()
          }
          return t
        }
      }
      ])
    }
    ,
    "object" == E(t) && "object" == E(e) ? e.exports = o() : (i = [],
    void 0 === (r = "function" == typeof (n = o) ? n.apply(t, i) : n) || (e.exports = r))
  }
  ).call(this, n(34)(e))
}
, function(e, t) {
  e.exports = ""
}
, function(e, t) {
  e.exports = ""
}
, function(e, t, n) {
  var i = n(1).schemeUrl
    , r = (n(0).getDocBodyObj,
  n(0).incaseBodyNull)
    , o = n(0).loadCss
    , E = n(0).removeFdiv
    , a = n(7)
    , C = n(10)
    , s = n(5)
    , B = n(6).ThunderDecode;
  t.productAndroidShow = function(e, t) {
    var n = B(e);
    o(i + "/js/v2/css/xl_android_tips.css");
    var D = document.charset;
    null != D && "" != D || (D = "gb2312");
    var u = encodeURIComponent(document.title);
    "" != u && null != u || (u = unescape("%u8FC5%u96F7"));
    var A = t;
    E();
    var l = document.createElement("div");
    return l.setAttribute("id", "fdiv"),
    l.className = "xl_android_tips",
    l.setAttribute("download_url", "alert_lianmeng"),
    r(),
    document.body.appendChild(l),
    e = C.createUrlByParam("xunleiapp://xunlei.com/sharePage", {
      type: "lianmeng",
      shareH5: "share_H5",
      h5Type: "h5_type",
      thunderPid: A,
      taskDownload: e,
      rel: window.url_e,
      ref: window.location.href,
      from: window.location.href
    }),
    c(),
    -1 === navigator.userAgent.indexOf("Android.Thunder") && function() {
      var e = window.devicePixelRatio
        , r = j_xunlei_q('meta[name="viewport"]');
      if (r.length > 0) {
        var o = r.eq(0);
        o.attr("content").indexOf("initial-scale=1") < 0 && (o.attr("content", "width=device-width, initial-scale=1"),
        o.attr("content", "width=device-width, initial-scale=" + 1 / e))
      } else
        j_xunlei_q("head").prepend('<meta name="viewport" content="width=device-width, initial-scale=' + 1 / e + '">');
      var E = '    <style>      .xl_android_tips{position: fixed;top: 50%;left: 50%;z-index: 2147483647;margin: 0;transform: translate(-50%,-50%);}       ._xl_andriod_show_2 ._xl_android_tips_con {position: relative;width: 94.26vw;padding-top: 82.024%;overflow: hidden;}       ._xl_andriod_show_2 ._xl_android_tips_con img {position: absolute;top: 0;left: 0;width: 100%;height: 100%;}       ._xl_andriod_show_2 .close {position: absolute;right: 5vw;top: 4vw;width: 12vw;height: 12vw;}    </style>    <div class="_xl_andriod_show_2" id="thunder_m_div"><a href="javascript:;"  blockid="lianmeng_mask" event_id="new_click" clickid="lianmengproductAndroidShow" id="AndroidDiv" ></a><div class="_xl_android_tips_con" id="thunder_dl_shoulei" clickid="download"><img src="' + i + '/img/pop2.png" /><a class="close" href="javascript:;" id="union_download_close" clickid="close"></a></div></div>';
      l.innerHTML = E,
      window.location.host,
      j_xunlei_q("#thunder_dl_shoulei").unbind("click").click(function() {
        s.reportSend("page_click", {
          clickid: "download"
        }),
        F()
      }),
      j_xunlei_q("#union_download_close").unbind("click").click(function(e) {
        s.reportSend("page_click", {
          clickid: "close"
        }),
        d(),
        e.stopPropagation()
      }),
      s.reportSend("page_pop", {
        clickid: "lianmengproductAndroidShow",
        sPid: t,
        download_url: n
      })
    }(),
    !1;
    function c() {
      return s.reportSend("page_click", {
        clickid: "launch"
      }),
      window.location.href = e,
      !0
    }
    function F() {
      var t, n = window.location.host, i = a["default"].apk;
      a.server && (a.server[A] ? a.server[A].apk && (i = a.server[A].apk) : a.server[n] && a.server[n].apk && (i = a.server[n].apk)),
      window.location.href = e;
      var r = Date.now();
      return t && clearTimeout(t),
      t = setTimeout(function() {
        Date.now() - r < 2e3 && (location.href = i)
      }, 1e3),
      !1
    }
    function d() {
      return E(),
      !1
    }
  }
}
, function(e, t, n) {
  function i(e) {
    return (i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
      return typeof e
    }
    : function(e) {
      return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
    }
    )(e)
  }
  var r = n(1).schemeUrl
    , o = (n(0).getDocBodyObj,
  n(0).incaseBodyNull,
  n(0).loadCss)
    , E = (n(0).removeFdiv,
  n(7),
  n(5))
    , a = n(4).getFieIconBase64Data
    , C = null;
  function s(e, t, n, i) {
    function E() {
      j_xunlei_q("#js_xl_popup_panel").remove(),
      j_xunlei_q("body").undelegate("#js_xl_install_btn", "click", s),
      j_xunlei_q("body").undelegate("#js_xl_launch_btn", "click", B),
      j_xunlei_q("body").undelegate("#js_xl_close_btn", "click", E)
    }
    function s() {
      E(),
      top.location.href = "http://down.sandai.net/mac/thunder_mac.dmg"
    }
    function B() {
      E(),
      setTimeout(function() {
        top.location.href = e
      }, 200)
    }
    null != C && C.destroy(),
    o(r + "/js/v2/css/mac_xpc_tips.css"),
    E(),
    j_xunlei_q("body").append(' <div class="xl_pop_tip" id="js_xl_popup_panel"><div class="xl_main_tip">    <div class="xl_top_pop">        <div class="xl_head_pop">            <h3 class="xl_tit">\u4e0b\u8f7d\u63d0\u793a</h3>            <div class="xl_wp_downjs">                <a href="//open.thunderurl.com/#/" target="_blank" class="xl_btn_downjs"><i></i></a>                <div class="xl_wp_downjs_tip">                    <p>\u70b9\u51fb\u4e86\u89e3\u201c\u8fc5\u96f7\u4e0b\u8f7dJS-SDK\u201d</p>                </div>            </div>            <a href="javascript:;" class="xl_btn_clo hide_txt" id="js_xl_close_btn">\u5173\u95ed<i></i></a>        </div>      <p class="xl_top_warning"><i class="icon_xl_warn icon_xl_success"></i>\u5df2\u83b7\u5f97\u4e0b\u8f7d\u94fe\u63a5</p>    </div>    <div class="xl_bot_pop">      <div class="xl_wp_download">        <div class="xl_img_download"><img src="' + a(n, i) + '" alt=""></div>        <p class="xl_info_download">' + i + '</p>      </div>      <div class="xl-button-wp">            <div class="xl-button-text">                <p>\u672a\u5b89\u88c5\u8fc5\u96f7</p>                <p>\u5df2\u5b89\u88c5\u8fc5\u96f7</p>            </div>            <div class="xl-button-main">                <a href="javascript:;" class="xl_btn btn_download" id="js_xl_install_btn"><i class="icon_xl_logo"></i><span>\u5b89\u88c5\u8fc5\u96f7</span></a>                <a href="javascript:;" class="xl_btn btn_download btn_launch_mac_thunder" id="js_xl_launch_btn"><span>\u542f\u52a8\u8fc5\u96f7\u4e0b\u8f7d</span></a>            </div>        </div>            </div></div></div>'),
    j_xunlei_q("#js_xl_popup_panel").css("z-Index", 99999),
    j_xunlei_q("body").delegate("#js_xl_close_btn", "click", E),
    j_xunlei_q("body").delegate("#js_xl_install_btn", "click", s),
    j_xunlei_q("body").delegate("#js_xl_launch_btn", "click", B)
  }
  t.newMacTasks = function(e, t) {
    function r(e) {
      var t = n(11);
      t.isSupported() && (C = new t(".btn_launch_mac_thunder",{
        text: function() {
          return e
        }
      }))
    }
    if (null != e.tasks && "object" === i(e.tasks)) {
      if (1 == e.tasks.length && null != e.tasks[0].url && /^\s*thunder:\/\//gi.test(e.tasks[0].url))
        s(e.tasks[0].url, 0, !1, t);
      else if (e.tasks.length > 1) {
        var o = "thunders://" + JSON.stringify(e).replace(/^\"|\"$/g, "").replace(/\\/g, "");
        try {
          s("thunder://QUFEdW1teUxpbmsvQ29weS1Gcm9tLUNsaXBib2FyZFpa", 0, !0, t),
          r(o)
        } catch (e) {
          alert("\u5bf9\u4e0d\u8d77,\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u8be5\u64cd\u4f5c\uff01")
        }
      }
    } else if (null != e.json && /^\s*https?:\/\//.test(e.json)) {
      o = "thunders://" + JSON.stringify(e).replace(/^\"|\"$/g, "").replace(/\\/g, "");
      try {
        s("thunder://QUFEdW1teUxpbmsvQ29weS1Gcm9tLUpTT05aWg==", 0, !0, t),
        r(o)
      } catch (e) {
        alert("\u5bf9\u4e0d\u8d77,\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u8be5\u64cd\u4f5c\uff01")
      }
    }
    E.reportSend("page_pop", {
      clickid: "productMacShow"
    })
  }
  ,
  t.productMacShow = s
}
, function(e, t) {
  var n, i, r = e.exports = {};
  function o() {
    throw new Error("setTimeout has not been defined")
  }
  function E() {
    throw new Error("clearTimeout has not been defined")
  }
  function a(e) {
    if (n === setTimeout)
      return setTimeout(e, 0);
    if ((n === o || !n) && setTimeout)
      return n = setTimeout,
      setTimeout(e, 0);
    try {
      return n(e, 0)
    } catch (t) {
      try {
        return n.call(null, e, 0)
      } catch (t) {
        return n.call(this, e, 0)
      }
    }
  }
  !function() {
    try {
      n = "function" == typeof setTimeout ? setTimeout : o
    } catch (e) {
      n = o
    }
    try {
      i = "function" == typeof clearTimeout ? clearTimeout : E
    } catch (e) {
      i = E
    }
  }();
  var C, s = [], B = !1, D = -1;
  function u() {
    B && C && (B = !1,
    C.length ? s = C.concat(s) : D = -1,
    s.length && A())
  }
  function A() {
    if (!B) {
      var e = a(u);
      B = !0;
      for (var t = s.length; t; ) {
        for (C = s,
        s = []; ++D < t; )
          C && C[D].run();
        D = -1,
        t = s.length
      }
      C = null,
      B = !1,
      function(e) {
        if (i === clearTimeout)
          return clearTimeout(e);
        if ((i === E || !i) && clearTimeout)
          return i = clearTimeout,
          clearTimeout(e);
        try {
          i(e)
        } catch (t) {
          try {
            return i.call(null, e)
          } catch (t) {
            return i.call(this, e)
          }
        }
      }(e)
    }
  }
  function l(e, t) {
    this.fun = e,
    this.array = t
  }
  function c() {}
  r.nextTick = function(e) {
    var t = new Array(arguments.length - 1);
    if (arguments.length > 1)
      for (var n = 1; n < arguments.length; n++)
        t[n - 1] = arguments[n];
    s.push(new l(e,t)),
    1 !== s.length || B || a(A)
  }
  ,
  l.prototype.run = function() {
    this.fun.apply(null, this.array)
  }
  ,
  r.title = "browser",
  r.browser = !0,
  r.env = {},
  r.argv = [],
  r.version = "",
  r.versions = {},
  r.on = c,
  r.addListener = c,
  r.once = c,
  r.off = c,
  r.removeListener = c,
  r.removeAllListeners = c,
  r.emit = c,
  r.prependListener = c,
  r.prependOnceListener = c,
  r.listeners = function(e) {
    return []
  }
  ,
  r.binding = function(e) {
    throw new Error("process.binding is not supported")
  }
  ,
  r.cwd = function() {
    return "/"
  }
  ,
  r.chdir = function(e) {
    throw new Error("process.chdir is not supported")
  }
  ,
  r.umask = function() {
    return 0
  }
}
, function(e, t, n) {
  "use strict";
  e.exports = function(e, t) {
    return function() {
      for (var n = new Array(arguments.length), i = 0; i < n.length; i++)
        n[i] = arguments[i];
      return e.apply(t, n)
    }
  }
}
, function(e, t, n) {
  "use strict";
  var i = n(2);
  function r(e) {
    return encodeURIComponent(e).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]")
  }
  e.exports = function(e, t, n) {
    if (!t)
      return e;
    var o;
    if (n)
      o = n(t);
    else if (i.isURLSearchParams(t))
      o = t.toString();
    else {
      var E = [];
      i.forEach(t, function(e, t) {
        null != e && (i.isArray(e) ? t += "[]" : e = [e],
        i.forEach(e, function(e) {
          i.isDate(e) ? e = e.toISOString() : i.isObject(e) && (e = JSON.stringify(e)),
          E.push(r(t) + "=" + r(e))
        }))
      }),
      o = E.join("&")
    }
    if (o) {
      var a = e.indexOf("#");
      -1 !== a && (e = e.slice(0, a)),
      e += (-1 === e.indexOf("?") ? "?" : "&") + o
    }
    return e
  }
}
, function(e, t, n) {
  "use strict";
  e.exports = function(e) {
    return !(!e || !e.__CANCEL__)
  }
}
, function(e, t, n) {
  "use strict";
  (function(t) {
    var i = n(2)
      , r = n(44)
      , o = {
      "Content-Type": "application/x-www-form-urlencoded"
    };
    function E(e, t) {
      !i.isUndefined(e) && i.isUndefined(e["Content-Type"]) && (e["Content-Type"] = t)
    }
    var a, C = {
      adapter: ("undefined" != typeof XMLHttpRequest ? a = n(21) : void 0 !== t && "[object process]" === Object.prototype.toString.call(t) && (a = n(21)),
      a),
      transformRequest: [function(e, t) {
        return r(t, "Accept"),
        r(t, "Content-Type"),
        i.isFormData(e) || i.isArrayBuffer(e) || i.isBuffer(e) || i.isStream(e) || i.isFile(e) || i.isBlob(e) ? e : i.isArrayBufferView(e) ? e.buffer : i.isURLSearchParams(e) ? (E(t, "application/x-www-form-urlencoded;charset=utf-8"),
        e.toString()) : i.isObject(e) ? (E(t, "application/json;charset=utf-8"),
        JSON.stringify(e)) : e
      }
      ],
      transformResponse: [function(e) {
        if ("string" == typeof e)
          try {
            e = JSON.parse(e)
          } catch (e) {}
        return e
      }
      ],
      timeout: 0,
      xsrfCookieName: "XSRF-TOKEN",
      xsrfHeaderName: "X-XSRF-TOKEN",
      maxContentLength: -1,
      maxBodyLength: -1,
      validateStatus: function(e) {
        return e >= 200 && e < 300
      }
    };
    C.headers = {
      common: {
        Accept: "application/json, text/plain, */*"
      }
    },
    i.forEach(["delete", "get", "head"], function(e) {
      C.headers[e] = {}
    }),
    i.forEach(["post", "put", "patch"], function(e) {
      C.headers[e] = i.merge(o)
    }),
    e.exports = C
  }
  ).call(this, n(16))
}
, function(e, t, n) {
  "use strict";
  (function(t) {
    var i = n(2)
      , r = n(45)
      , o = n(47)
      , E = n(18)
      , a = n(48)
      , C = n(51)
      , s = n(52)
      , B = n(22);
    e.exports = function(e) {
      return new t(function(t, n) {
        var D = e.data
          , u = e.headers;
        i.isFormData(D) && delete u["Content-Type"];
        var A = new XMLHttpRequest;
        if (e.auth) {
          var l = e.auth.username || ""
            , c = e.auth.password ? unescape(encodeURIComponent(e.auth.password)) : "";
          u.Authorization = "Basic " + btoa(l + ":" + c)
        }
        var F = a(e.baseURL, e.url);
        if (A.open(e.method.toUpperCase(), E(F, e.params, e.paramsSerializer), !0),
        A.timeout = e.timeout,
        A.onreadystatechange = function() {
          if (A && 4 === A.readyState && (0 !== A.status || A.responseURL && 0 === A.responseURL.indexOf("file:"))) {
            var i = "getAllResponseHeaders"in A ? C(A.getAllResponseHeaders()) : null
              , o = {
              data: e.responseType && "text" !== e.responseType ? A.response : A.responseText,
              status: A.status,
              statusText: A.statusText,
              headers: i,
              config: e,
              request: A
            };
            r(t, n, o),
            A = null
          }
        }
        ,
        A.onabort = function() {
          A && (n(B("Request aborted", e, "ECONNABORTED", A)),
          A = null)
        }
        ,
        A.onerror = function() {
          n(B("Network Error", e, null, A)),
          A = null
        }
        ,
        A.ontimeout = function() {
          var t = "timeout of " + e.timeout + "ms exceeded";
          e.timeoutErrorMessage && (t = e.timeoutErrorMessage),
          n(B(t, e, "ECONNABORTED", A)),
          A = null
        }
        ,
        i.isStandardBrowserEnv()) {
          var d = (e.withCredentials || s(F)) && e.xsrfCookieName ? o.read(e.xsrfCookieName) : void 0;
          d && (u[e.xsrfHeaderName] = d)
        }
        if ("setRequestHeader"in A && i.forEach(u, function(e, t) {
          void 0 === D && "content-type" === t.toLowerCase() ? delete u[t] : A.setRequestHeader(t, e)
        }),
        i.isUndefined(e.withCredentials) || (A.withCredentials = !!e.withCredentials),
        e.responseType)
          try {
            A.responseType = e.responseType
          } catch (t) {
            if ("json" !== e.responseType)
              throw t
          }
        "function" == typeof e.onDownloadProgress && A.addEventListener("progress", e.onDownloadProgress),
        "function" == typeof e.onUploadProgress && A.upload && A.upload.addEventListener("progress", e.onUploadProgress),
        e.cancelToken && e.cancelToken.promise.then(function(e) {
          A && (A.abort(),
          n(e),
          A = null)
        }),
        D || (D = null),
        A.send(D)
      }
      )
    }
  }
  ).call(this, n(9))
}
, function(e, t, n) {
  "use strict";
  var i = n(46);
  e.exports = function(e, t, n, r, o) {
    var E = new Error(e);
    return i(E, t, n, r, o)
  }
}
, function(e, t, n) {
  "use strict";
  var i = n(2);
  e.exports = function(e, t) {
    t = t || {};
    var n = {}
      , r = ["url", "method", "data"]
      , o = ["headers", "auth", "proxy", "params"]
      , E = ["baseURL", "transformRequest", "transformResponse", "paramsSerializer", "timeout", "timeoutMessage", "withCredentials", "adapter", "responseType", "xsrfCookieName", "xsrfHeaderName", "onUploadProgress", "onDownloadProgress", "decompress", "maxContentLength", "maxBodyLength", "maxRedirects", "transport", "httpAgent", "httpsAgent", "cancelToken", "socketPath", "responseEncoding"]
      , a = ["validateStatus"];
    function C(e, t) {
      return i.isPlainObject(e) && i.isPlainObject(t) ? i.merge(e, t) : i.isPlainObject(t) ? i.merge({}, t) : i.isArray(t) ? t.slice() : t
    }
    function s(r) {
      i.isUndefined(t[r]) ? i.isUndefined(e[r]) || (n[r] = C(void 0, e[r])) : n[r] = C(e[r], t[r])
    }
    i.forEach(r, function(e) {
      i.isUndefined(t[e]) || (n[e] = C(void 0, t[e]))
    }),
    i.forEach(o, s),
    i.forEach(E, function(r) {
      i.isUndefined(t[r]) ? i.isUndefined(e[r]) || (n[r] = C(void 0, e[r])) : n[r] = C(void 0, t[r])
    }),
    i.forEach(a, function(i) {
      i in t ? n[i] = C(e[i], t[i]) : i in e && (n[i] = C(void 0, e[i]))
    });
    var B = r.concat(o).concat(E).concat(a)
      , D = Object.keys(e).concat(Object.keys(t)).filter(function(e) {
      return -1 === B.indexOf(e)
    });
    return i.forEach(D, s),
    n
  }
}
, function(e, t, n) {
  "use strict";
  function i(e) {
    this.message = e
  }
  i.prototype.toString = function() {
    return "Cancel" + (this.message ? ": " + this.message : "")
  }
  ,
  i.prototype.__CANCEL__ = !0,
  e.exports = i
}
, function(e, t, n) {
  n(26),
  n(27),
  n(28);
  var i = n(29)
    , r = n(35)
    , o = n(3).downloadWithXlwfp
    , E = n(3).playWithXmp
    , a = n(3).iPhoneDownload
    , C = n(56).saveToCloudPan
    , s = n(3).getXlVersion
    , B = n(3).getXmpVersion
    , D = n(14)
    , u = n(15)
    , A = n(8)
    , l = n(1).openThunderSchemeUrl
    , c = n(57)
    , F = n(0)
    , d = n(0).getUserBrowser
    , h = n(0).getUserOSType
    , p = n(0).gteWin7
    , f = n(0).versionCompare
    , m = (n(0).wtdChangFolder,
  n(0).getFileNameFromURL)
    , v = n(6).ThunderEncode
    , g = n(4).Dialog
    , _ = n(5);
  function y() {
    c()
  }
  (0,
  n(0).loadCss)(l + "/xl_xpc_tips.css");
  try {
    s(A.pid, function(e) {
      g.xlVersion = e
    })
  } catch (e) {}
  function b(e) {
    g.fn = e.tasks[0].name,
    g.popup("need_to_install_xmp", e.tasks[0].url, !1, !1);
    var t = document.querySelector("#js_xl_manual_lunach_xmp");
    t && t.addEventListener("click", function() {
      E({
        thunderPid: A.pid,
        tasks: e.tasks
      }, function() {}, function() {}),
      _.reportSend("js_sdk_bxbb_install_popup_play")
    });
    var n = document.querySelector("#js_xmp_download_btn");
    n && n.addEventListener("click", function() {
      _.reportSend("js_sdk_bxbb_install_popup_install")
    }),
    g.init(),
    _.reportSend("js_sdk_bxbb_install_popup_show")
  }
  y.config = function(e) {
    e.pid && (A.pid = e.pid),
    e.exceptPath && (A.exceptPath = e.exceptPath)
  }
  ,
  y.newTask = function(e) {
    window.__referer__ = e.referer,
    e = j_xunlei_q.extend({}, e);
    var t = d()
      , n = F.getIEVersion()
      , E = h()
      , B = !1
      , l = !1
      , c = "";
    if (void 0 !== e.thunderInstallPack && /^\s*https?:\/\/(.+?\.)?down\.sandai\.net/gi.test(e.thunderInstallPack) ? g.thunderInstallPack = e.thunderInstallPack : g.thunderInstallPack = void 0,
    void 0 !== e.json && -1 !== e.json.indexOf("http"))
      B = !0,
      l = !0,
      void 0 !== e.taskGroupName && (c = e.taskGroupName);
    else {
      if (void 0 === e.tasks)
        return;
      if (!0 === (l = e.tasks.length > 1) ? null != e.taskGroupName && "" != e.taskGroupName && (c = e.taskGroupName,
      B = !0) : null != e.tasks[0].name && "" != e.tasks[0].name && (c = e.tasks[0].name),
      "" === c && null != e.tasks[0].url) {
        var y = e.tasks[0].url;
        "" === (c = m(y)) && (c = e.tasks[0].url),
        null != e.tasks[0].name && "" != e.tasks[0].name && (c = e.tasks[0].name)
      }
      for (var b = 0; b < e.tasks.length; b++)
        e.tasks[b].originUrl = e.tasks[b].url,
        e.tasks[b].url = v(e.tasks[b].url)
    }
    l ? _.reportSend("page_click", {
      clickid: "lianmeng_target",
      tasktype: "batchtask"
    }) : _.reportSend("page_click", {
      clickid: "lianmeng_target",
      tasktype: "singletask",
      click_url: e.tasks[0].url || ""
    }),
    g.fn = c,
    g.tasks = e.tasks,
    g.init(A.pid);
    try {
      r.get("//api-xl9-ssl.xunlei.com/xlws/partner/is_partner?union_id=".concat(A.pid)).then(function(r) {
        if (r.data.data.is_exist)
          l ? alert("\u672a\u652f\u6301\u6279\u91cf\u4e0b\u8f7d\u529f\u80fd\uff0c\u8bf7\u671f\u5f85\u540e\u7eed\u66f4\u65b0\u7684\u7248\u672c\u3002") : C(e.tasks[0].url, e.tasks[0].originUrl, c, A.pid);
        else if ("iPhone" == E || "iPad" == E || "iPod" == E)
          l ? alert("\u624b\u673a\u8fc5\u96f7\u6682\u672a\u652f\u6301\u6279\u91cf\u4e0b\u8f7d\u529f\u80fd\uff0c\u8bf7\u671f\u5f85\u540e\u7eed\u66f4\u65b0\u7684\u7248\u672c\u3002") : a(e.tasks[0].url, e.tasks[0].originUrl, c);
        else if ("MacBrowser" == t)
          u.newMacTasks(e, c);
        else if ("Android" == t)
          l ? alert("\u624b\u673a\u8fc5\u96f7\u6682\u672a\u652f\u6301\u6279\u91cf\u4e0b\u8f7d\u529f\u80fd\uff0c\u8bf7\u671f\u5f85\u540e\u7eed\u66f4\u65b0\u7684\u7248\u672c\u3002") : D.productAndroidShow(e.tasks[0].url, A.pid);
        else if (p() && ("IE" === t && n > 9 || "IE" !== t)) {
          var F = location.href.substring(0, 5);
          if ("IE" === t && "https" === F && n < 12)
            return g.copyText("thunderx://" + JSON.stringify(e)),
            void g.popup("not_install_on_win", l ? "" : e.tasks[0].url, l, B);
          s(A.pid, function(t) {
            var n = e.minVersion;
            if (void 0 !== n && 0 != /^\d+\.\d+\.\d+(?:\.\d+)?$/.test(n) || (n = "10.0.1.0"),
            t && f(t, n) >= 0)
              if (void 0 !== e.json && -1 !== e.json.indexOf("http"))
                o({
                  json: e.json,
                  thunderPid: A.pid
                });
              else {
                var i = {
                  downloadDir: e.downloadDir,
                  installFile: e.installFile,
                  excludePath: e.excludePath,
                  runParams: e.runParams,
                  taskgroupName: e.taskGroupName,
                  tasks: e.tasks,
                  thunderPid: A.pid,
                  createShortcut: e.createShortcut
                };
                void 0 !== e.userAgent && (i.userAgent = e.userAgent),
                void 0 !== e.threadCount && (i.threadCount = e.threadCount),
                o(i)
              }
            else
              t && f(t, "9.0.0.0") >= 0 ? l ? (g.copyText("thunderx://" + JSON.stringify(e)),
              g.popup("need_to_update_on_win", l ? "" : e.tasks[0].url, l, B)) : o({
                thunderPid: A.pid,
                url: e.tasks[0].url,
                createShortcut: e.createShortcut
              }) : (g.copyText("thunderx://" + JSON.stringify(e)),
              g.popup("not_install_on_win", l ? "" : e.tasks[0].url, l, B))
          })
        } else
          l ? p() ? g.popup("old_browser_on_win") : g.popup("old_system_on_win") : i.windowsDefaultHandler(e.tasks[0].url, A.pid),
          g.copyText("thunderx://" + JSON.stringify(e))
      })
    } catch (e) {
      console.error("err: ", e)
    }
  }
  ,
  y.playWithXmp = function(e) {
    window.__referer__ = e.referer,
    B(A.pid, function(t) {
      var n = e.minVersion;
      void 0 !== n && 0 != /^\d+\.\d+\.\d+(?:\.\d+)?$/.test(n) || (n = "6.0.1.0"),
      f(t, n) >= 0 && E({
        thunderPid: A.pid,
        tasks: e.tasks
      })
    })
  }
  ,
  y.downAndPlayWithXmp = function(e) {
    if (window.__referer__ = e.referer,
    !(e && e.tasks && e.tasks[0] && e.tasks[0].url))
      return console.error("\u53c2\u6570\u9519\u8bef");
    var t = d();
    h();
    if (!p())
      return "MacBrowser" == t ? alert("Mac OS\u6682\u4e0d\u652f\u6301\u5728\u7ebf\u64ad\u653e\u672c\u89c6\u9891\uff0c\u8bf7\u4e0b\u8f7d\u540e\u64ad\u653e\uff01") : alert("\u79fb\u52a8\u8bbe\u5907\u6682\u4e0d\u652f\u6301\u5728\u7ebf\u64ad\u653e\u672c\u89c6\u9891\uff0c\u8bf7\u4e0b\u8f7d\u540e\u64ad\u653e\uff01");
    E({
      thunderPid: A.pid,
      tasks: e.tasks
    }, function(t) {
      t || b(e)
    }, function() {
      b(e)
    })
  }
  ,
  e.exports = y
}
, function(e, t, n) {}
, function(e, t) {
  function n(e) {
    return (n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
      return typeof e
    }
    : function(e) {
      return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
    }
    )(e)
  }
  !function(e, t) {
    function i() {
      if (!p.isReady) {
        try {
          v.documentElement.doScroll("left")
        } catch (e) {
          return void setTimeout(i, 1)
        }
        p.ready()
      }
    }
    function r(e, t) {
      t.src ? p.ajax({
        url: t.src,
        async: !1,
        dataType: "script"
      }) : p.globalEval(t.text || t.textContent || t.innerHTML || ""),
      t.parentNode && t.parentNode.removeChild(t)
    }
    function o(e, i, r, E, a, C) {
      var s = e.length;
      if ("object" === n(i)) {
        for (var B in i)
          o(e, B, i[B], E, a, r);
        return e
      }
      if (r !== t) {
        for (E = !C && E && p.isFunction(r),
        B = 0; B < s; B++)
          a(e[B], i, E ? r.call(e[B], B, a(e[B], i)) : r, C);
        return e
      }
      return s ? a(e[0], i) : t
    }
    function E() {
      return (new Date).getTime()
    }
    function a() {
      return !1
    }
    function C() {
      return !0
    }
    function s(e, t, n) {
      return n[0].type = e,
      p.event.handle.apply(t, n)
    }
    function B(e) {
      var t, n, i, r, o, E, a, C = [], s = [], B = arguments;
      if (i = p.data(this, "events"),
      e.liveFired !== this && i && i.live && (!e.button || "click" !== e.type)) {
        e.liveFired = this;
        var D = i.live.slice(0);
        for (o = 0; o < D.length; o++)
          (i = D[o]).origType.replace(q, "") === e.type ? s.push(i.selector) : D.splice(o--, 1);
        for (E = 0,
        a = (n = p(e.target).closest(s, e.currentTarget)).length; E < a; E++)
          for (o = 0; o < D.length; o++)
            i = D[o],
            n[E].selector === i.selector && (r = n[E].elem,
            s = null,
            "mouseenter" !== i.preType && "mouseleave" !== i.preType || (s = p(e.relatedTarget).closest(i.selector)[0]),
            s && s === r || C.push({
              elem: r,
              handleObj: i
            }));
        for (E = 0,
        a = C.length; E < a; E++)
          if (n = C[E],
          e.currentTarget = n.elem,
          e.data = n.handleObj.data,
          e.handleObj = n.handleObj,
          !1 === n.handleObj.origHandler.apply(n.elem, B)) {
            t = !1;
            break
          }
        return t
      }
    }
    function D(e, t) {
      return "live." + (e && "*" !== e ? e + "." : "") + t.replace(/\./g, "`").replace(/ /g, "&")
    }
    function u(e) {
      return !e || !e.parentNode || 11 === e.parentNode.nodeType
    }
    function A(e, t) {
      var n = 0;
      t.each(function() {
        if (this.nodeName === (e[n] && e[n].nodeName)) {
          var t = p.data(e[n++])
            , i = p.data(this, t);
          if (t = t && t.events)
            for (var r in delete i.handle,
            i.events = {},
            t)
              for (var o in t[r])
                p.event.add(this, r, t[r][o], t[r][o].data)
        }
      })
    }
    function l(e, t, n) {
      var i, r, o;
      return t = t && t[0] ? t[0].ownerDocument || t[0] : v,
      1 === e.length && "string" == typeof e[0] && e[0].length < 512 && t === v && !le.test(e[0]) && (p.support.checkClone || !ce.test(e[0])) && (r = !0,
      (o = p.fragments[e[0]]) && 1 !== o && (i = o)),
      i || (i = t.createDocumentFragment(),
      p.clean(e, t, i, n)),
      r && (p.fragments[e[0]] = o ? i : 1),
      {
        fragment: i,
        cacheable: r
      }
    }
    function c(e, t) {
      var n = {};
      return p.each(Ze.concat.apply([], Ze.slice(0, t)), function() {
        n[this] = e
      }),
      n
    }
    function F(e) {
      return "scrollTo"in e && e.document ? e : 9 === e.nodeType && (e.defaultView || e.parentWindow)
    }
    var d, h, p = function qe(e, t) {
      return new qe.fn.init(e,t)
    }, f = e.jQuery, m = e.$, v = e.document, g = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/, _ = /^.[^:#\[\.,]*$/, y = /\S/, b = /^(\s|\u00A0)+|(\s|\u00A0)+$/g, w = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, x = navigator.userAgent, k = !1, T = [], j = Object.prototype.toString, I = Object.prototype.hasOwnProperty, S = Array.prototype.push, N = Array.prototype.slice, M = Array.prototype.indexOf;
    p.fn = p.prototype = {
      init: function(e, n) {
        var i, r;
        if (!e)
          return this;
        if (e.nodeType)
          return this.context = this[0] = e,
          this.length = 1,
          this;
        if ("body" === e && !n)
          return this.context = v,
          this[0] = v.body,
          this.selector = "body",
          this.length = 1,
          this;
        if ("string" == typeof e) {
          if (!(i = g.exec(e)) || !i[1] && n)
            return !n && /^\w+$/.test(e) ? (this.selector = e,
            this.context = v,
            e = v.getElementsByTagName(e),
            p.merge(this, e)) : !n || n.jquery ? (n || d).find(e) : p(n).find(e);
          if (i[1])
            return r = n ? n.ownerDocument || n : v,
            (e = w.exec(e)) ? p.isPlainObject(n) ? (e = [v.createElement(e[1])],
            p.fn.attr.call(e, n, !0)) : e = [r.createElement(e[1])] : e = ((e = l([i[1]], [r])).cacheable ? e.fragment.cloneNode(!0) : e.fragment).childNodes,
            p.merge(this, e);
          if (n = v.getElementById(i[2])) {
            if (n.id !== i[2])
              return d.find(e);
            this.length = 1,
            this[0] = n
          }
          return this.context = v,
          this.selector = e,
          this
        }
        return p.isFunction(e) ? d.ready(e) : (e.selector !== t && (this.selector = e.selector,
        this.context = e.context),
        p.makeArray(e, this))
      },
      selector: "",
      jquery: "1.4.2",
      length: 0,
      size: function() {
        return this.length
      },
      toArray: function() {
        return N.call(this, 0)
      },
      get: function(e) {
        return null == e ? this.toArray() : e < 0 ? this.slice(e)[0] : this[e]
      },
      pushStack: function(e, t, n) {
        var i = p();
        return p.isArray(e) ? S.apply(i, e) : p.merge(i, e),
        i.prevObject = this,
        i.context = this.context,
        "find" === t ? i.selector = this.selector + (this.selector ? " " : "") + n : t && (i.selector = this.selector + "." + t + "(" + n + ")"),
        i
      },
      each: function(e, t) {
        return p.each(this, e, t)
      },
      ready: function(e) {
        return p.bindReady(),
        p.isReady ? e.call(v, p) : T && T.push(e),
        this
      },
      eq: function(e) {
        return -1 === e ? this.slice(e) : this.slice(e, +e + 1)
      },
      first: function() {
        return this.eq(0)
      },
      last: function() {
        return this.eq(-1)
      },
      slice: function() {
        return this.pushStack(N.apply(this, arguments), "slice", N.call(arguments).join(","))
      },
      map: function(e) {
        return this.pushStack(p.map(this, function(t, n) {
          return e.call(t, n, t)
        }))
      },
      end: function() {
        return this.prevObject || p(null)
      },
      push: S,
      sort: [].sort,
      splice: [].splice
    },
    p.fn.init.prototype = p.fn,
    p.extend = p.fn.extend = function() {
      var e, i, r, o, E = arguments[0] || {}, a = 1, C = arguments.length, s = !1;
      for ("boolean" == typeof E && (s = E,
      E = arguments[1] || {},
      a = 2),
      "object" === n(E) || p.isFunction(E) || (E = {}),
      C === a && (E = this,
      --a); a < C; a++)
        if (null != (e = arguments[a]))
          for (i in e)
            e.hasOwnProperty(i) && (r = E[i],
            E !== (o = e[i]) && (s && o && (p.isPlainObject(o) || p.isArray(o)) ? (r = r && (p.isPlainObject(r) || p.isArray(r)) ? r : p.isArray(o) ? [] : {},
            E[i] = p.extend(s, r, o)) : o !== t && (E[i] = o)));
      return E
    }
    ,
    p.extend({
      noConflict: function(t) {
        return e.$ = m,
        t && (e.jQuery = f),
        p
      },
      isReady: !1,
      ready: function() {
        if (!p.isReady) {
          if (!v.body)
            return setTimeout(p.ready, 13);
          if (p.isReady = !0,
          T) {
            for (var e, t = 0; e = T[t++]; )
              e.call(v, p);
            T = null
          }
          p.fn.triggerHandler && p(v).triggerHandler("ready")
        }
      },
      bindReady: function() {
        if (!k) {
          if (k = !0,
          "complete" === v.readyState)
            return p.ready();
          if (v.addEventListener)
            v.addEventListener("DOMContentLoaded", h, !1),
            e.addEventListener("load", p.ready, !1);
          else if (v.attachEvent) {
            v.attachEvent("onreadystatechange", h),
            e.attachEvent("onload", p.ready);
            var t = !1;
            try {
              t = null == e.frameElement
            } catch (e) {}
            v.documentElement.doScroll && t && i()
          }
        }
      },
      isFunction: function(e) {
        return "[object Function]" === j.call(e)
      },
      isArray: function(e) {
        return "[object Array]" === j.call(e)
      },
      isPlainObject: function(e) {
        if (!e || "[object Object]" !== j.call(e) || e.nodeType || e.setInterval)
          return !1;
        if (e.constructor && !I.call(e, "constructor") && !I.call(e.constructor.prototype, "isPrototypeOf"))
          return !1;
        var n;
        for (n in e)
          ;
        return n === t || I.call(e, n)
      },
      isEmptyObject: function(e) {
        for (var t in e)
          return !1;
        return !0
      },
      error: function(e) {
        throw e
      },
      parseJSON: function(t) {
        return "string" == typeof t && t ? (t = p.trim(t),
        /^[\],:{}\s]*$/.test(t.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ? e.JSON && e.JSON.parse ? e.JSON.parse(t) : new Function("return " + t)() : void p.error("Invalid JSON: " + t)) : null
      },
      noop: function() {},
      globalEval: function(e) {
        if (e && y.test(e)) {
          var t = v.getElementsByTagName("head")[0] || v.documentElement
            , n = v.createElement("script");
          n.type = "text/javascript",
          p.support.scriptEval ? n.appendChild(v.createTextNode(e)) : n.text = e,
          t.insertBefore(n, t.firstChild),
          t.removeChild(n)
        }
      },
      nodeName: function(e, t) {
        return e.nodeName && e.nodeName.toUpperCase() === t.toUpperCase()
      },
      each: function(e, n, i) {
        var r, o = 0, E = e.length, a = E === t || p.isFunction(e);
        if (i)
          if (a) {
            for (r in e)
              if (!1 === n.apply(e[r], i))
                break
          } else
            for (; o < E && !1 !== n.apply(e[o++], i); )
              ;
        else if (a) {
          for (r in e)
            if (e.hasOwnProperty(r) && !1 === n.call(e[r], r, e[r]))
              break
        } else
          for (i = e[0]; o < E && !1 !== n.call(i, o, i); i = e[++o])
            ;
        return e
      },
      trim: function(e) {
        return (e || "").replace(b, "")
      },
      makeArray: function(e, t) {
        return t = t || [],
        null != e && (null == e.length || "string" == typeof e || p.isFunction(e) || "function" != typeof e && e.setInterval ? S.call(t, e) : p.merge(t, e)),
        t
      },
      inArray: function(e, t) {
        if (t.indexOf)
          return t.indexOf(e);
        for (var n = 0, i = t.length; n < i; n++)
          if (t[n] === e)
            return n;
        return -1
      },
      merge: function(e, n) {
        var i = e.length
          , r = 0;
        if ("number" == typeof n.length)
          for (var o = n.length; r < o; r++)
            e[i++] = n[r];
        else
          for (; n[r] !== t; )
            e[i++] = n[r++];
        return e.length = i,
        e
      },
      grep: function(e, t, n) {
        for (var i = [], r = 0, o = e.length; r < o; r++)
          !n != !t(e[r], r) && i.push(e[r]);
        return i
      },
      map: function(e, t, n) {
        for (var i, r = [], o = 0, E = e.length; o < E; o++)
          null != (i = t(e[o], o, n)) && (r[r.length] = i);
        return r.concat.apply([], r)
      },
      guid: 1,
      proxy: function(e, n, i) {
        return 2 === arguments.length && ("string" == typeof n ? (e = (i = e)[n],
        n = t) : n && !p.isFunction(n) && (i = n,
        n = t)),
        !n && e && (n = function() {
          return e.apply(i || this, arguments)
        }
        ),
        e && (n.guid = e.guid = e.guid || n.guid || p.guid++),
        n
      },
      uaMatch: function(e) {
        return e = e.toLowerCase(),
        {
          browser: (e = /(webkit)[ \/]([\w.]+)/.exec(e) || /(opera)(?:.*version)?[ \/]([\w.]+)/.exec(e) || /(msie) ([\w.]+)/.exec(e) || !/compatible/.test(e) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec(e) || [])[1] || "",
          version: e[2] || "0"
        }
      },
      browser: {}
    }),
    (x = p.uaMatch(x)).browser && (p.browser[x.browser] = !0,
    p.browser.version = x.version),
    p.browser.webkit && (p.browser.safari = !0),
    M && (p.inArray = function(e, t) {
      return M.call(t, e)
    }
    ),
    d = p(v),
    v.addEventListener ? h = function() {
      v.removeEventListener("DOMContentLoaded", h, !1),
      p.ready()
    }
    : v.attachEvent && (h = function() {
      "complete" === v.readyState && (v.detachEvent("onreadystatechange", h),
      p.ready())
    }
    ),
    function() {
      p.support = {};
      var t = v.documentElement
        , n = v.createElement("script")
        , i = v.createElement("div")
        , r = "script" + E();
      i.style.display = "none",
      i.innerHTML = "   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
      var o = i.getElementsByTagName("*")
        , a = i.getElementsByTagName("a")[0];
      if (o && o.length && a) {
        p.support = {
          leadingWhitespace: 3 === i.firstChild.nodeType,
          tbody: !i.getElementsByTagName("tbody").length,
          htmlSerialize: !!i.getElementsByTagName("link").length,
          style: /red/.test(a.getAttribute("style")),
          hrefNormalized: "/a" === a.getAttribute("href"),
          opacity: /^0.55$/.test(a.style.opacity),
          cssFloat: !!a.style.cssFloat,
          checkOn: "on" === i.getElementsByTagName("input")[0].value,
          optSelected: v.createElement("select").appendChild(v.createElement("option")).selected,
          parentNode: null === i.removeChild(i.appendChild(v.createElement("div"))).parentNode,
          deleteExpando: !0,
          checkClone: !1,
          scriptEval: !1,
          noCloneEvent: !0,
          boxModel: null
        },
        n.type = "text/javascript";
        try {
          n.appendChild(v.createTextNode("window." + r + "=1;"))
        } catch (e) {}
        t.insertBefore(n, t.firstChild),
        e[r] && (p.support.scriptEval = !0,
        delete e[r]);
        try {
          delete n.test
        } catch (e) {
          p.support.deleteExpando = !1
        }
        t.removeChild(n),
        i.attachEvent && i.fireEvent && (i.attachEvent("onclick", function E() {
          p.support.noCloneEvent = !1,
          i.detachEvent("onclick", E)
        }),
        i.cloneNode(!0).fireEvent("onclick")),
        (i = v.createElement("div")).innerHTML = "<input type='radio' name='radiotest' checked='checked'/>",
        (t = v.createDocumentFragment()).appendChild(i.firstChild),
        p.support.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked,
        p(function() {
          var e = v.createElement("div");
          e.style.width = e.style.paddingLeft = "1px",
          v.body.appendChild(e),
          p.boxModel = p.support.boxModel = 2 === e.offsetWidth,
          v.body.removeChild(e).style.display = "none"
        }),
        t = function(e) {
          var t = v.createElement("div")
            , n = (e = "on" + e)in t;
          return n || (t.setAttribute(e, "return;"),
          n = "function" == typeof t[e]),
          n
        }
        ,
        p.support.submitBubbles = t("submit"),
        p.support.changeBubbles = t("change"),
        t = n = i = o = a = null
      }
    }(),
    p.props = {
      "for": "htmlFor",
      "class": "className",
      readonly: "readOnly",
      maxlength: "maxLength",
      cellspacing: "cellSpacing",
      rowspan: "rowSpan",
      colspan: "colSpan",
      tabindex: "tabIndex",
      usemap: "useMap",
      frameborder: "frameBorder"
    };
    var P = "jQuery" + E()
      , O = 0
      , R = {};
    p.extend({
      cache: {},
      expando: P,
      noData: {
        embed: !0,
        object: !0,
        applet: !0
      },
      data: function(i, r, o) {
        if (!i.nodeName || !p.noData[i.nodeName.toLowerCase()]) {
          var E = (i = i == e ? R : i)[P]
            , a = p.cache;
          return E || "string" != typeof r || o !== t ? (E || (E = ++O),
          "object" === n(r) ? (i[P] = E,
          a[E] = p.extend(!0, {}, r)) : a[E] || (i[P] = E,
          a[E] = {}),
          i = a[E],
          o !== t && (i[r] = o),
          "string" == typeof r ? i[r] : i) : null
        }
      },
      removeData: function(t, n) {
        if (!t.nodeName || !p.noData[t.nodeName.toLowerCase()]) {
          var i = (t = t == e ? R : t)[P]
            , r = p.cache
            , o = r[i];
          n ? o && (delete o[n],
          p.isEmptyObject(o) && p.removeData(t)) : (p.support.deleteExpando ? delete t[p.expando] : t.removeAttribute && t.removeAttribute(p.expando),
          delete r[i])
        }
      }
    }),
    p.fn.extend({
      data: function(e, i) {
        if (void 0 === e && this.length)
          return p.data(this[0]);
        if ("object" === n(e))
          return this.each(function() {
            p.data(this, e)
          });
        var r = e.split(".");
        if (r[1] = r[1] ? "." + r[1] : "",
        i === t) {
          var o = this.triggerHandler("getData" + r[1] + "!", [r[0]]);
          return o === t && this.length && (o = p.data(this[0], e)),
          o === t && r[1] ? this.data(r[0]) : o
        }
        return this.trigger("setData" + r[1] + "!", [r[0], i]).each(function() {
          p.data(this, e, i)
        })
      },
      removeData: function(e) {
        return this.each(function() {
          p.removeData(this, e)
        })
      }
    }),
    p.extend({
      queue: function(e, t, n) {
        if (e) {
          t = (t || "fx") + "queue";
          var i = p.data(e, t);
          return n ? (!i || p.isArray(n) ? i = p.data(e, t, p.makeArray(n)) : i.push(n),
          i) : i || []
        }
      },
      dequeue: function(e, t) {
        t = t || "fx";
        var n = p.queue(e, t)
          , i = n.shift();
        "inprogress" === i && (i = n.shift()),
        i && ("fx" === t && n.unshift("inprogress"),
        i.call(e, function() {
          p.dequeue(e, t)
        }))
      }
    }),
    p.fn.extend({
      queue: function(e, n) {
        return "string" != typeof e && (n = e,
        e = "fx"),
        n === t ? p.queue(this[0], e) : this.each(function() {
          var t = p.queue(this, e, n);
          "fx" === e && "inprogress" !== t[0] && p.dequeue(this, e)
        })
      },
      dequeue: function(e) {
        return this.each(function() {
          p.dequeue(this, e)
        })
      },
      delay: function(e, t) {
        return e = p.fx && p.fx.speeds[e] || e,
        t = t || "fx",
        this.queue(t, function() {
          var n = this;
          setTimeout(function() {
            p.dequeue(n, t)
          }, e)
        })
      },
      clearQueue: function(e) {
        return this.queue(e || "fx", [])
      }
    });
    var L = /[\n\t]/g
      , G = /\s+/
      , U = /\r/g
      , Y = /href|src|style/
      , Q = /(button|input)/i
      , W = /(button|input|object|select|textarea)/i
      , H = /^(a|area)$/i
      , Z = /radio|checkbox/;
    p.fn.extend({
      attr: function(e, t) {
        return o(this, e, t, !0, p.attr)
      },
      removeAttr: function(e) {
        return this.each(function() {
          p.attr(this, e, ""),
          1 === this.nodeType && this.removeAttribute(e)
        })
      },
      addClass: function(e) {
        if (p.isFunction(e))
          return this.each(function(t) {
            var n = p(this);
            n.addClass(e.call(this, t, n.attr("class")))
          });
        if (e && "string" == typeof e)
          for (var t = (e || "").split(G), n = 0, i = this.length; n < i; n++) {
            var r = this[n];
            if (1 === r.nodeType)
              if (r.className) {
                for (var o = " " + r.className + " ", E = r.className, a = 0, C = t.length; a < C; a++)
                  o.indexOf(" " + t[a] + " ") < 0 && (E += " " + t[a]);
                r.className = p.trim(E)
              } else
                r.className = e
          }
        return this
      },
      removeClass: function(e) {
        if (p.isFunction(e))
          return this.each(function(t) {
            var n = p(this);
            n.removeClass(e.call(this, t, n.attr("class")))
          });
        if (e && "string" == typeof e || e === t)
          for (var n = (e || "").split(G), i = 0, r = this.length; i < r; i++) {
            var o = this[i];
            if (1 === o.nodeType && o.className)
              if (e) {
                for (var E = (" " + o.className + " ").replace(L, " "), a = 0, C = n.length; a < C; a++)
                  E = E.replace(" " + n[a] + " ", " ");
                o.className = p.trim(E)
              } else
                o.className = ""
          }
        return this
      },
      toggleClass: function(e, t) {
        var i = n(e)
          , r = "boolean" == typeof t;
        return p.isFunction(e) ? this.each(function(n) {
          var i = p(this);
          i.toggleClass(e.call(this, n, i.attr("class"), t), t)
        }) : this.each(function() {
          if ("string" === i)
            for (var n, o = 0, E = p(this), a = t, C = e.split(G); n = C[o++]; )
              a = r ? a : !E.hasClass(n),
              E[a ? "addClass" : "removeClass"](n);
          else
            "undefined" !== i && "boolean" !== i || (this.className && p.data(this, "__className__", this.className),
            this.className = this.className || !1 === e ? "" : p.data(this, "__className__") || "")
        })
      },
      hasClass: function(e) {
        e = " " + e + " ";
        for (var t = 0, n = this.length; t < n; t++)
          if ((" " + this[t].className + " ").replace(L, " ").indexOf(e) > -1)
            return !0;
        return !1
      },
      val: function(e) {
        if (e === t) {
          var n = this[0];
          if (n) {
            if (p.nodeName(n, "option"))
              return (n.attributes.value || {}).specified ? n.value : n.text;
            if (p.nodeName(n, "select")) {
              var i = n.selectedIndex
                , r = []
                , o = n.options;
              if (n = "select-one" === n.type,
              i < 0)
                return null;
              var E = n ? i : 0;
              for (i = n ? i + 1 : o.length; E < i; E++) {
                var a = o[E];
                if (a.selected) {
                  if (e = p(a).val(),
                  n)
                    return e;
                  r.push(e)
                }
              }
              return r
            }
            return Z.test(n.type) && !p.support.checkOn ? null === n.getAttribute("value") ? "on" : n.value : (n.value || "").replace(U, "")
          }
          return t
        }
        var C = p.isFunction(e);
        return this.each(function(t) {
          var n = p(this)
            , i = e;
          if (1 === this.nodeType)
            if (C && (i = e.call(this, t, n.val())),
            "number" == typeof i && (i += ""),
            p.isArray(i) && Z.test(this.type))
              this.checked = p.inArray(n.val(), i) >= 0;
            else if (p.nodeName(this, "select")) {
              var r = p.makeArray(i);
              p("option", this).each(function() {
                this.selected = p.inArray(p(this).val(), r) >= 0
              }),
              r.length || (this.selectedIndex = -1)
            } else
              this.value = i
        })
      }
    }),
    p.extend({
      attrFn: {
        val: !0,
        css: !0,
        html: !0,
        text: !0,
        data: !0,
        width: !0,
        height: !0,
        offset: !0
      },
      attr: function(e, n, i, r) {
        if (!e || 3 === e.nodeType || 8 === e.nodeType)
          return t;
        if (r && n in p.attrFn)
          return p(e)[n](i);
        r = 1 !== e.nodeType || !p.isXMLDoc(e);
        var o = i !== t;
        if (n = r && p.props[n] || n,
        1 === e.nodeType) {
          var E = Y.test(n);
          return n in e && r && !E ? (o && ("type" === n && Q.test(e.nodeName) && e.parentNode && p.error("type property can't be changed"),
          e[n] = i),
          p.nodeName(e, "form") && e.getAttributeNode(n) ? e.getAttributeNode(n).nodeValue : "tabIndex" === n ? (n = e.getAttributeNode("tabIndex")) && n.specified ? n.value : W.test(e.nodeName) || H.test(e.nodeName) && e.href ? 0 : t : e[n]) : !p.support.style && r && "style" === n ? (o && (e.style.cssText = "" + i),
          e.style.cssText) : (o && e.setAttribute(n, "" + i),
          null === (e = !p.support.hrefNormalized && r && E ? e.getAttribute(n, 2) : e.getAttribute(n)) ? t : e)
        }
        return p.style(e, n, i)
      }
    });
    var q = /\.(.*)$/
      , z = function(e) {
      return e.replace(/[^\w\s\.\|`]/g, function(e) {
        return "\\" + e
      })
    };
    p.event = {
      add: function(n, i, r, o) {
        var E, a;
        if (3 !== n.nodeType && 8 !== n.nodeType && (n.setInterval && n !== e && !n.frameElement && (n = e),
        r.handler && (r = (E = r).handler),
        r.guid || (r.guid = p.guid++),
        a = p.data(n))) {
          var C = a.events = a.events || {}
            , s = a.handle;
          s || (a.handle = s = function() {
            return void 0 === p || p.event.triggered ? t : p.event.handle.apply(s.elem, arguments)
          }
          ),
          s.elem = n,
          i = i.split(" ");
          for (var B, D, u = 0; B = i[u++]; ) {
            a = E ? p.extend({}, E) : {
              handler: r,
              data: o
            },
            B.indexOf(".") > -1 ? (D = B.split("."),
            B = D.shift(),
            a.namespace = D.slice(0).sort().join(".")) : (D = [],
            a.namespace = ""),
            a.type = B,
            a.guid = r.guid;
            var A = C[B]
              , l = p.event.special[B] || {};
            A || (A = C[B] = [],
            l.setup && !1 !== l.setup.call(n, o, D, s) || (n.addEventListener ? n.addEventListener(B, s, !1) : n.attachEvent && n.attachEvent("on" + B, s))),
            l.add && (l.add.call(n, a),
            a.handler.guid || (a.handler.guid = r.guid)),
            A.push(a),
            p.event.global[B] = !0
          }
          n = null
        }
      },
      global: {},
      remove: function(e, t, n, i) {
        if (3 !== e.nodeType && 8 !== e.nodeType) {
          var r, o, E, a, C, s, B, D = 0, u = p.data(e), A = u && u.events;
          if (u && A)
            if (t && t.type && (n = t.handler,
            t = t.type),
            !t || "string" == typeof t && "." === t.charAt(0))
              for (r in t = t || "",
              A)
                p.event.remove(e, r + t);
            else {
              for (t = t.split(" "); r = t[D++]; )
                if (C = r,
                E = [],
                (o = r.indexOf(".") < 0) || (E = r.split("."),
                r = E.shift(),
                a = new RegExp("(^|\\.)" + p.map(E.slice(0).sort(), z).join("\\.(?:.*\\.)?") + "(\\.|$)")),
                s = A[r])
                  if (n) {
                    for (C = p.event.special[r] || {},
                    l = i || 0; l < s.length && (B = s[l],
                    n.guid !== B.guid || ((o || a.test(B.namespace)) && (null == i && s.splice(l--, 1),
                    C.remove && C.remove.call(e, B)),
                    null == i)); l++)
                      ;
                    (0 === s.length || null != i && 1 === s.length) && (C.teardown && !1 !== C.teardown.call(e, E) || J(e, r, u.handle),
                    delete A[r])
                  } else
                    for (var l = 0; l < s.length; l++)
                      B = s[l],
                      (o || a.test(B.namespace)) && (p.event.remove(e, C, B.handler, l),
                      s.splice(l--, 1));
              p.isEmptyObject(A) && ((t = u.handle) && (t.elem = null),
              delete u.events,
              delete u.handle,
              p.isEmptyObject(u) && p.removeData(e))
            }
        }
      },
      trigger: function(e, i, r, o) {
        var E = e.type || e;
        if (!o) {
          if (e = "object" === n(e) ? e[P] ? e : p.extend(p.Event(E), e) : p.Event(E),
          E.indexOf("!") >= 0 && (e.type = E = E.slice(0, -1),
          e.exclusive = !0),
          r || (e.stopPropagation(),
          p.event.global[E] && p.each(p.cache, function() {
            this.events && this.events[E] && p.event.trigger(e, i, this.handle.elem)
          })),
          !r || 3 === r.nodeType || 8 === r.nodeType)
            return t;
          e.result = t,
          e.target = r,
          (i = p.makeArray(i)).unshift(e)
        }
        e.currentTarget = r,
        (o = p.data(r, "handle")) && o.apply(r, i),
        o = r.parentNode || r.ownerDocument;
        try {
          r && r.nodeName && p.noData[r.nodeName.toLowerCase()] || r["on" + E] && !1 === r["on" + E].apply(r, i) && (e.result = !1)
        } catch (e) {}
        if (!e.isPropagationStopped() && o)
          p.event.trigger(e, i, o, !0);
        else if (!e.isDefaultPrevented()) {
          o = e.target;
          var a, C = p.nodeName(o, "a") && "click" === E, s = p.event.special[E] || {};
          if (!(s._default && !1 !== s._default.call(r, e) || C || o && o.nodeName && p.noData[o.nodeName.toLowerCase()])) {
            try {
              o[E] && ((a = o["on" + E]) && (o["on" + E] = null),
              p.event.triggered = !0,
              o[E]())
            } catch (e) {}
            a && (o["on" + E] = a),
            p.event.triggered = !1
          }
        }
      },
      handle: function(n) {
        var i, r, o, E;
        if ((n = arguments[0] = p.event.fix(n || e.event)).currentTarget = this,
        (i = n.type.indexOf(".") < 0 && !n.exclusive) || (r = n.type.split("."),
        n.type = r.shift(),
        o = new RegExp("(^|\\.)" + r.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)")),
        r = (E = p.data(this, "events"))[n.type],
        E && r) {
          E = 0;
          for (var a = (r = r.slice(0)).length; E < a; E++) {
            var C = r[E];
            if ((i || o.test(C.namespace)) && (n.handler = C.handler,
            n.data = C.data,
            n.handleObj = C,
            (C = C.handler.apply(this, arguments)) !== t && (n.result = C,
            !1 === C && (n.preventDefault(),
            n.stopPropagation())),
            n.isImmediatePropagationStopped()))
              break
          }
        }
        return n.result
      },
      props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
      fix: function(e) {
        if (e[P])
          return e;
        var n = e;
        e = p.Event(n);
        for (var i, r = this.props.length; r; )
          e[i = this.props[--r]] = n[i];
        return e.target || (e.target = e.srcElement || v),
        3 === e.target.nodeType && (e.target = e.target.parentNode),
        !e.relatedTarget && e.fromElement && (e.relatedTarget = e.fromElement === e.target ? e.toElement : e.fromElement),
        null == e.pageX && null != e.clientX && (n = v.documentElement,
        r = v.body,
        e.pageX = e.clientX + (n && n.scrollLeft || r && r.scrollLeft || 0) - (n && n.clientLeft || r && r.clientLeft || 0),
        e.pageY = e.clientY + (n && n.scrollTop || r && r.scrollTop || 0) - (n && n.clientTop || r && r.clientTop || 0)),
        !e.which && (e.charCode || 0 === e.charCode ? e.charCode : e.keyCode) && (e.which = e.charCode || e.keyCode),
        !e.metaKey && e.ctrlKey && (e.metaKey = e.ctrlKey),
        e.which || e.button === t || (e.which = 1 & e.button ? 1 : 2 & e.button ? 3 : 4 & e.button ? 2 : 0),
        e
      },
      guid: 1e8,
      proxy: p.proxy,
      special: {
        ready: {
          setup: p.bindReady,
          teardown: p.noop
        },
        live: {
          add: function(e) {
            p.event.add(this, e.origType, p.extend({}, e, {
              handler: B
            }))
          },
          remove: function(e) {
            var t = !0
              , n = e.origType.replace(q, "");
            p.each(p.data(this, "events").live || [], function() {
              if (n === this.origType.replace(q, ""))
                return t = !1
            }),
            t && p.event.remove(this, e.origType, B)
          }
        },
        beforeunload: {
          setup: function(e, t, n) {
            return this.setInterval && (this.onbeforeunload = n),
            !1
          },
          teardown: function(e, t) {
            this.onbeforeunload === t && (this.onbeforeunload = null)
          }
        }
      }
    };
    var J = v.removeEventListener ? function(e, t, n) {
      e.removeEventListener(t, n, !1)
    }
    : function(e, t, n) {
      e.detachEvent("on" + t, n)
    }
    ;
    p.Event = function(e) {
      if (!this.preventDefault)
        return new p.Event(e);
      e && e.type ? (this.originalEvent = e,
      this.type = e.type) : this.type = e,
      this.timeStamp = E(),
      this[P] = !0
    }
    ,
    p.Event.prototype = {
      preventDefault: function() {
        this.isDefaultPrevented = C;
        var e = this.originalEvent;
        e && (e.preventDefault && e.preventDefault(),
        e.returnValue = !1)
      },
      stopPropagation: function() {
        this.isPropagationStopped = C;
        var e = this.originalEvent;
        e && (e.stopPropagation && e.stopPropagation(),
        e.cancelBubble = !0)
      },
      stopImmediatePropagation: function() {
        this.isImmediatePropagationStopped = C,
        this.stopPropagation()
      },
      isDefaultPrevented: a,
      isPropagationStopped: a,
      isImmediatePropagationStopped: a
    };
    var V = function(e) {
      var t = e.relatedTarget;
      try {
        for (; t && t !== this; )
          t = t.parentNode;
        t !== this && (e.type = e.data,
        p.event.handle.apply(this, arguments))
      } catch (e) {}
    }
      , X = function(e) {
      e.type = e.data,
      p.event.handle.apply(this, arguments)
    };
    if (p.each({
      mouseenter: "mouseover",
      mouseleave: "mouseout"
    }, function(e, t) {
      p.event.special[e] = {
        setup: function(n) {
          p.event.add(this, t, n && n.selector ? X : V, e)
        },
        teardown: function(e) {
          p.event.remove(this, t, e && e.selector ? X : V)
        }
      }
    }),
    p.support.submitBubbles || (p.event.special.submit = {
      setup: function() {
        if ("form" === this.nodeName.toLowerCase())
          return !1;
        p.event.add(this, "click.specialSubmit", function(e) {
          var t = e.target
            , n = t.type;
          if (("submit" === n || "image" === n) && p(t).closest("form").length)
            return s("submit", this, arguments)
        }),
        p.event.add(this, "keypress.specialSubmit", function(e) {
          var t = e.target
            , n = t.type;
          if (("text" === n || "password" === n) && p(t).closest("form").length && 13 === e.keyCode)
            return s("submit", this, arguments)
        })
      },
      teardown: function() {
        p.event.remove(this, ".specialSubmit")
      }
    }),
    !p.support.changeBubbles) {
      var K, $ = /textarea|input|select/i, ee = function(e) {
        var t = e.type
          , n = e.value;
        return "radio" === t || "checkbox" === t ? n = e.checked : "select-multiple" === t ? n = e.selectedIndex > -1 ? p.map(e.options, function(e) {
          return e.selected
        }).join("-") : "" : "select" === e.nodeName.toLowerCase() && (n = e.selectedIndex),
        n
      }, te = function(e, n) {
        var i, r, o = e.target;
        if ($.test(o.nodeName) && !o.readOnly && (i = p.data(o, "_change_data"),
        r = ee(o),
        "focusout" === e.type && "radio" === o.type || p.data(o, "_change_data", r),
        i !== t && r !== i && (null != i || r)))
          return e.type = "change",
          p.event.trigger(e, n, o)
      };
      p.event.special.change = {
        filters: {
          focusout: te,
          click: function(e) {
            var t = e.target
              , n = t.type;
            if ("radio" === n || "checkbox" === n || "select" === t.nodeName.toLowerCase())
              return te.call(this, e)
          },
          keydown: function(e) {
            var t = e.target
              , n = t.type;
            if (13 === e.keyCode && "textarea" !== t.nodeName.toLowerCase() || 32 === e.keyCode && ("checkbox" === n || "radio" === n) || "select-multiple" === n)
              return te.call(this, e)
          },
          beforeactivate: function(e) {
            e = e.target,
            p.data(e, "_change_data", ee(e))
          }
        },
        setup: function() {
          if ("file" === this.type)
            return !1;
          for (var e in K)
            p.event.add(this, e + ".specialChange", K[e]);
          return $.test(this.nodeName)
        },
        teardown: function() {
          return p.event.remove(this, ".specialChange"),
          $.test(this.nodeName)
        }
      },
      K = p.event.special.change.filters
    }
    v.addEventListener && p.each({
      focus: "focusin",
      blur: "focusout"
    }, function(e, t) {
      function n(e) {
        return (e = p.event.fix(e)).type = t,
        p.event.handle.call(this, e)
      }
      p.event.special[t] = {
        setup: function() {
          this.addEventListener(e, n, !0)
        },
        teardown: function() {
          this.removeEventListener(e, n, !0)
        }
      }
    }),
    p.each(["bind", "one"], function(e, i) {
      p.fn[i] = function(e, r, o) {
        if ("object" === n(e)) {
          for (var E in e)
            this[i](E, r, e[E], o);
          return this
        }
        p.isFunction(r) && (o = r,
        r = t);
        var a = "one" === i ? p.proxy(o, function(e) {
          return p(this).unbind(e, a),
          o.apply(this, arguments)
        }) : o;
        if ("unload" === e && "one" !== i)
          this.one(e, r, o);
        else {
          E = 0;
          for (var C = this.length; E < C; E++)
            p.event.add(this[E], e, a, r)
        }
        return this
      }
    }),
    p.fn.extend({
      unbind: function(e, t) {
        if ("object" !== n(e) || e.preventDefault) {
          r = 0;
          for (var i = this.length; r < i; r++)
            p.event.remove(this[r], e, t)
        } else
          for (var r in e)
            this.unbind(r, e[r]);
        return this
      },
      delegate: function(e, t, n, i) {
        return this.live(t, n, i, e)
      },
      undelegate: function(e, t, n) {
        return 0 === arguments.length ? this.unbind("live") : this.die(t, null, n, e)
      },
      trigger: function(e, t) {
        return this.each(function() {
          p.event.trigger(e, t, this)
        })
      },
      triggerHandler: function(e, t) {
        if (this[0])
          return (e = p.Event(e)).preventDefault(),
          e.stopPropagation(),
          p.event.trigger(e, t, this[0]),
          e.result
      },
      toggle: function(e) {
        for (var t = arguments, n = 1; n < t.length; )
          p.proxy(e, t[n++]);
        return this.click(p.proxy(e, function(i) {
          var r = (p.data(this, "lastToggle" + e.guid) || 0) % n;
          return p.data(this, "lastToggle" + e.guid, r + 1),
          i.preventDefault(),
          t[r].apply(this, arguments) || !1
        }))
      },
      hover: function(e, t) {
        return this.mouseenter(e).mouseleave(t || e)
      }
    });
    var ne = {
      focus: "focusin",
      blur: "focusout",
      mouseenter: "mouseover",
      mouseleave: "mouseout"
    };
    p.each(["live", "die"], function(e, n) {
      p.fn[n] = function(e, i, r, o) {
        var E, a, C, s = 0, B = o || this.selector, u = o ? this : p(this.context);
        for (p.isFunction(i) && (r = i,
        i = t),
        e = (e || "").split(" "); null != (E = e[s++]); )
          a = "",
          (o = q.exec(E)) && (a = o[0],
          E = E.replace(q, "")),
          "hover" === E ? e.push("mouseenter" + a, "mouseleave" + a) : (C = E,
          "focus" === E || "blur" === E ? (e.push(ne[E] + a),
          E += a) : E = (ne[E] || E) + a,
          "live" === n ? u.each(function() {
            p.event.add(this, D(E, B), {
              data: i,
              selector: B,
              handler: r,
              origType: E,
              origHandler: r,
              preType: C
            })
          }) : u.unbind(D(E, B), r));
        return this
      }
    }),
    p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "), function(e, t) {
      p.fn[t] = function(e) {
        return e ? this.bind(t, e) : this.trigger(t)
      }
      ,
      p.attrFn && (p.attrFn[t] = !0)
    }),
    e.attachEvent && !e.addEventListener && e.attachEvent("onunload", function() {
      for (var e in p.cache)
        if (p.cache[e].handle)
          try {
            p.event.remove(p.cache[e].handle.elem)
          } catch (e) {}
    }),
    function() {
      function e(t) {
        for (var n, i = "", r = 0; t[r]; r++)
          3 === (n = t[r]).nodeType || 4 === n.nodeType ? i += n.nodeValue : 8 !== n.nodeType && (i += e(n.childNodes));
        return i
      }
      function n(e, t, n, i, r, o) {
        r = 0;
        for (var E = i.length; r < E; r++) {
          var a = i[r];
          if (a) {
            a = a[e];
            for (var C = !1; a; ) {
              if (a.sizcache === n) {
                C = i[a.sizset];
                break
              }
              if (1 !== a.nodeType || o || (a.sizcache = n,
              a.sizset = r),
              a.nodeName.toLowerCase() === t) {
                C = a;
                break
              }
              a = a[e]
            }
            i[r] = C
          }
        }
      }
      function i(e, t, n, i, r, o) {
        r = 0;
        for (var E = i.length; r < E; r++) {
          var a = i[r];
          if (a) {
            a = a[e];
            for (var C = !1; a; ) {
              if (a.sizcache === n) {
                C = i[a.sizset];
                break
              }
              if (1 === a.nodeType)
                if (o || (a.sizcache = n,
                a.sizset = r),
                "string" != typeof t) {
                  if (a === t) {
                    C = !0;
                    break
                  }
                } else if (s.filter(t, [a]).length > 0) {
                  C = a;
                  break
                }
              a = a[e]
            }
            i[r] = C
          }
        }
      }
      var r = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g
        , o = 0
        , E = Object.prototype.toString
        , a = !1
        , C = !0;
      [0, 0].sort(function() {
        return C = !1,
        0
      });
      var s = function(e, t, n, i) {
        n = n || [];
        var o = t = t || v;
        if (1 !== t.nodeType && 9 !== t.nodeType)
          return [];
        if (!e || "string" != typeof e)
          return n;
        for (var a, C, u, A, l = [], p = !0, f = d(t), m = e; null !== (r.exec(""),
        a = r.exec(m)); )
          if (m = a[3],
          l.push(a[1]),
          a[2]) {
            A = a[3];
            break
          }
        if (l.length > 1 && D.exec(e))
          if (2 === l.length && B.relative[l[0]])
            C = h(l[0] + l[1], t);
          else
            for (C = B.relative[l[0]] ? [t] : s(l.shift(), t); l.length; )
              e = l.shift(),
              B.relative[e] && (e += l.shift()),
              C = h(e, C);
        else if (!i && l.length > 1 && 9 === t.nodeType && !f && B.match.ID.test(l[0]) && !B.match.ID.test(l[l.length - 1]) && (t = (a = s.find(l.shift(), t, f)).expr ? s.filter(a.expr, a.set)[0] : a.set[0]),
        t)
          for (C = (a = i ? {
            expr: l.pop(),
            set: c(i)
          } : s.find(l.pop(), 1 !== l.length || "~" !== l[0] && "+" !== l[0] || !t.parentNode ? t : t.parentNode, f)).expr ? s.filter(a.expr, a.set) : a.set,
          l.length > 0 ? u = c(C) : p = !1; l.length; ) {
            var g = l.pop();
            a = g,
            B.relative[g] ? a = l.pop() : g = "",
            null == a && (a = t),
            B.relative[g](u, a, f)
          }
        else
          u = [];
        if (u || (u = C),
        u || s.error(g || e),
        "[object Array]" === E.call(u))
          if (p)
            if (t && 1 === t.nodeType)
              for (e = 0; null != u[e]; e++)
                u[e] && (!0 === u[e] || 1 === u[e].nodeType && F(t, u[e])) && n.push(C[e]);
            else
              for (e = 0; null != u[e]; e++)
                u[e] && 1 === u[e].nodeType && n.push(C[e]);
          else
            n.push.apply(n, u);
        else
          c(u, n);
        return A && (s(A, o, n, i),
        s.uniqueSort(n)),
        n
      };
      s.uniqueSort = function(e) {
        if (A && (a = C,
        e.sort(A),
        a))
          for (var t = 1; t < e.length; t++)
            e[t] === e[t - 1] && e.splice(t--, 1);
        return e
      }
      ,
      s.matches = function(e, t) {
        return s(e, null, null, t)
      }
      ,
      s.find = function(e, t, n) {
        var i, r;
        if (!e)
          return [];
        for (var o = 0, E = B.order.length; o < E; o++) {
          var a = B.order[o];
          if (r = B.leftMatch[a].exec(e)) {
            var C = r[1];
            if (r.splice(1, 1),
            "\\" !== C.substr(C.length - 1) && (r[1] = (r[1] || "").replace(/\\/g, ""),
            null != (i = B.find[a](r, t, n)))) {
              e = e.replace(B.match[a], "");
              break
            }
          }
        }
        return i || (i = t.getElementsByTagName("*")),
        {
          set: i,
          expr: e
        }
      }
      ,
      s.filter = function(e, n, i, r) {
        for (var o, E, a = e, C = [], D = n, u = n && n[0] && d(n[0]); e && n.length; ) {
          for (var A in B.filter)
            if (null != (o = B.leftMatch[A].exec(e)) && o[2]) {
              var l, c, F = B.filter[A];
              if (c = o[1],
              E = !1,
              o.splice(1, 1),
              "\\" !== c.substr(c.length - 1)) {
                if (D === C && (C = []),
                B.preFilter[A])
                  if (o = B.preFilter[A](o, D, i, C, r, u)) {
                    if (!0 === o)
                      continue
                  } else
                    E = l = !0;
                if (o)
                  for (var h = 0; null != (c = D[h]); h++)
                    if (c) {
                      var p = r ^ !!(l = F(c, o, h, D));
                      i && null != l ? p ? E = !0 : D[h] = !1 : p && (C.push(c),
                      E = !0)
                    }
                if (l !== t) {
                  if (i || (D = C),
                  e = e.replace(B.match[A], ""),
                  !E)
                    return [];
                  break
                }
              }
            }
          if (e === a) {
            if (null != E)
              break;
            s.error(e)
          }
          a = e
        }
        return D
      }
      ,
      s.error = function(e) {
        throw "Syntax error, unrecognized expression: " + e
      }
      ;
      var B = s.selectors = {
        order: ["ID", "NAME", "TAG"],
        match: {
          ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
          CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
          NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,
          ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
          TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,
          CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
          POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
          PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
        },
        leftMatch: {},
        attrMap: {
          "class": "className",
          "for": "htmlFor"
        },
        attrHandle: {
          href: function(e) {
            return e.getAttribute("href")
          }
        },
        relative: {
          "+": function(e, t) {
            var n = "string" == typeof t
              , i = n && !/\W/.test(t);
            n = n && !i,
            i && (t = t.toLowerCase()),
            i = 0;
            for (var r, o = e.length; i < o; i++)
              if (r = e[i]) {
                for (; (r = r.previousSibling) && 1 !== r.nodeType; )
                  ;
                e[i] = n || r && r.nodeName.toLowerCase() === t ? r || !1 : r === t
              }
            n && s.filter(t, e, !0)
          },
          ">": function(e, t) {
            var n = "string" == typeof t;
            if (n && !/\W/.test(t)) {
              t = t.toLowerCase();
              for (var i = 0, r = e.length; i < r; i++) {
                var o = e[i];
                o && (n = o.parentNode,
                e[i] = n.nodeName.toLowerCase() === t && n)
              }
            } else {
              for (i = 0,
              r = e.length; i < r; i++)
                (o = e[i]) && (e[i] = n ? o.parentNode : o.parentNode === t);
              n && s.filter(t, e, !0)
            }
          },
          "": function(e, t, r) {
            var E = o++
              , a = i;
            if ("string" == typeof t && !/\W/.test(t)) {
              var C = t = t.toLowerCase();
              a = n
            }
            a("parentNode", t, E, e, C, r)
          },
          "~": function(e, t, r) {
            var E = o++
              , a = i;
            if ("string" == typeof t && !/\W/.test(t)) {
              var C = t = t.toLowerCase();
              a = n
            }
            a("previousSibling", t, E, e, C, r)
          }
        },
        find: {
          ID: function(e, t, n) {
            if (void 0 !== t.getElementById && !n)
              return (e = t.getElementById(e[1])) ? [e] : []
          },
          NAME: function(e, t) {
            if (void 0 !== t.getElementsByName) {
              for (var n = [], i = 0, r = (t = t.getElementsByName(e[1])).length; i < r; i++)
                t[i].getAttribute("name") === e[1] && n.push(t[i]);
              return 0 === n.length ? null : n
            }
          },
          TAG: function(e, t) {
            return t.getElementsByTagName(e[1])
          }
        },
        preFilter: {
          CLASS: function(e, t, n, i, r, o) {
            if (e = " " + e[1].replace(/\\/g, "") + " ",
            o)
              return e;
            o = 0;
            for (var E; null != (E = t[o]); o++)
              E && (r ^ (E.className && (" " + E.className + " ").replace(/[\t\n]/g, " ").indexOf(e) >= 0) ? n || i.push(E) : n && (t[o] = !1));
            return !1
          },
          ID: function(e) {
            return e[1].replace(/\\/g, "")
          },
          TAG: function(e) {
            return e[1].toLowerCase()
          },
          CHILD: function(e) {
            if ("nth" === e[1]) {
              var t = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(("even" === e[2] ? "2n" : "odd" === e[2] && "2n+1") || !/\D/.test(e[2]) && "0n+" + e[2] || e[2]);
              e[2] = t[1] + (t[2] || 1) - 0,
              e[3] = t[3] - 0
            }
            return e[0] = o++,
            e
          },
          ATTR: function(e, t, n, i, r, o) {
            return t = e[1].replace(/\\/g, ""),
            !o && B.attrMap[t] && (e[1] = B.attrMap[t]),
            "~=" === e[2] && (e[4] = " " + e[4] + " "),
            e
          },
          PSEUDO: function(e, t, n, i, o) {
            if ("not" === e[1]) {
              if (!((r.exec(e[3]) || "").length > 1 || /^\w/.test(e[3])))
                return e = s.filter(e[3], t, n, !0 ^ o),
                n || i.push.apply(i, e),
                !1;
              e[3] = s(e[3], null, null, t)
            } else if (B.match.POS.test(e[0]) || B.match.CHILD.test(e[0]))
              return !0;
            return e
          },
          POS: function(e) {
            return e.unshift(!0),
            e
          }
        },
        filters: {
          enabled: function(e) {
            return !1 === e.disabled && "hidden" !== e.type
          },
          disabled: function(e) {
            return !0 === e.disabled
          },
          checked: function(e) {
            return !0 === e.checked
          },
          selected: function(e) {
            return !0 === e.selected
          },
          parent: function(e) {
            return !!e.firstChild
          },
          empty: function(e) {
            return !e.firstChild
          },
          has: function(e, t, n) {
            return !!s(n[3], e).length
          },
          header: function(e) {
            return /h\d/i.test(e.nodeName)
          },
          text: function(e) {
            return "text" === e.type
          },
          radio: function(e) {
            return "radio" === e.type
          },
          checkbox: function(e) {
            return "checkbox" === e.type
          },
          file: function(e) {
            return "file" === e.type
          },
          password: function(e) {
            return "password" === e.type
          },
          submit: function(e) {
            return "submit" === e.type
          },
          image: function(e) {
            return "image" === e.type
          },
          reset: function(e) {
            return "reset" === e.type
          },
          button: function(e) {
            return "button" === e.type || "button" === e.nodeName.toLowerCase()
          },
          input: function(e) {
            return /input|select|textarea|button/i.test(e.nodeName)
          }
        },
        setFilters: {
          first: function(e, t) {
            return 0 === t
          },
          last: function(e, t, n, i) {
            return t === i.length - 1
          },
          even: function(e, t) {
            return t % 2 == 0
          },
          odd: function(e, t) {
            return t % 2 == 1
          },
          lt: function(e, t, n) {
            return t < n[3] - 0
          },
          gt: function(e, t, n) {
            return t > n[3] - 0
          },
          nth: function(e, t, n) {
            return n[3] - 0 === t
          },
          eq: function(e, t, n) {
            return n[3] - 0 === t
          }
        },
        filter: {
          PSEUDO: function(t, n, i, r) {
            var o = n[1]
              , E = B.filters[o];
            if (E)
              return E(t, i, n, r);
            if ("contains" === o)
              return (t.textContent || t.innerText || e([t]) || "").indexOf(n[3]) >= 0;
            if ("not" === o) {
              for (i = 0,
              r = (n = n[3]).length; i < r; i++)
                if (n[i] === t)
                  return !1;
              return !0
            }
            s.error("Syntax error, unrecognized expression: " + o)
          },
          CHILD: function(e, t) {
            var n = t[1]
              , i = e;
            switch (n) {
            case "only":
            case "first":
              for (; i = i.previousSibling; )
                if (1 === i.nodeType)
                  return !1;
              if ("first" === n)
                return !0;
              i = e;
            case "last":
              for (; i = i.nextSibling; )
                if (1 === i.nodeType)
                  return !1;
              return !0;
            case "nth":
              n = t[2];
              var r = t[3];
              if (1 === n && 0 === r)
                return !0;
              t = t[0];
              var o = e.parentNode;
              if (o && (o.sizcache !== t || !e.nodeIndex)) {
                var E = 0;
                for (i = o.firstChild; i; i = i.nextSibling)
                  1 === i.nodeType && (i.nodeIndex = ++E);
                o.sizcache = t
              }
              return e = e.nodeIndex - r,
              0 === n ? 0 === e : e % n == 0 && e / n >= 0
            }
          },
          ID: function(e, t) {
            return 1 === e.nodeType && e.getAttribute("id") === t
          },
          TAG: function(e, t) {
            return "*" === t && 1 === e.nodeType || e.nodeName.toLowerCase() === t
          },
          CLASS: function(e, t) {
            return (" " + (e.className || e.getAttribute("class")) + " ").indexOf(t) > -1
          },
          ATTR: function(e, t) {
            var n = t[1];
            n = (e = B.attrHandle[n] ? B.attrHandle[n](e) : null != e[n] ? e[n] : e.getAttribute(n)) + "";
            var i = t[2];
            return t = t[4],
            null == e ? "!=" === i : "=" === i ? n === t : "*=" === i ? n.indexOf(t) >= 0 : "~=" === i ? (" " + n + " ").indexOf(t) >= 0 : t ? "!=" === i ? n !== t : "^=" === i ? 0 === n.indexOf(t) : "$=" === i ? n.substr(n.length - t.length) === t : "|=" === i && (n === t || n.substr(0, t.length + 1) === t + "-") : n && !1 !== e
          },
          POS: function(e, t, n, i) {
            var r = B.setFilters[t[2]];
            if (r)
              return r(e, n, t, i)
          }
        }
      }
        , D = B.match.POS;
      for (var u in B.match)
        B.match[u] = new RegExp(B.match[u].source + /(?![^\[]*\])(?![^\(]*\))/.source),
        B.leftMatch[u] = new RegExp(/(^(?:.|\r|\n)*?)/.source + B.match[u].source.replace(/\\(\d+)/g, function(e, t) {
          return "\\" + (t - 0 + 1)
        }));
      var A, l, c = function(e, t) {
        return e = Array.prototype.slice.call(e, 0),
        t ? (t.push.apply(t, e),
        t) : e
      };
      try {
        Array.prototype.slice.call(v.documentElement.childNodes, 0)
      } catch (e) {
        c = function(e, t) {
          if (t = t || [],
          "[object Array]" === E.call(e))
            Array.prototype.push.apply(t, e);
          else if ("number" == typeof e.length)
            for (var n = 0, i = e.length; n < i; n++)
              t.push(e[n]);
          else
            for (n = 0; e[n]; n++)
              t.push(e[n]);
          return t
        }
      }
      v.documentElement.compareDocumentPosition ? A = function(e, t) {
        return e.compareDocumentPosition && t.compareDocumentPosition ? (0 === (e = 4 & e.compareDocumentPosition(t) ? -1 : e === t ? 0 : 1) && (a = !0),
        e) : (e == t && (a = !0),
        e.compareDocumentPosition ? -1 : 1)
      }
      : "sourceIndex"in v.documentElement ? A = function(e, t) {
        return e.sourceIndex && t.sourceIndex ? (0 === (e = e.sourceIndex - t.sourceIndex) && (a = !0),
        e) : (e == t && (a = !0),
        e.sourceIndex ? -1 : 1)
      }
      : v.createRange && (A = function(e, t) {
        if (!e.ownerDocument || !t.ownerDocument)
          return e == t && (a = !0),
          e.ownerDocument ? -1 : 1;
        var n = e.ownerDocument.createRange()
          , i = t.ownerDocument.createRange();
        return n.setStart(e, 0),
        n.setEnd(e, 0),
        i.setStart(t, 0),
        i.setEnd(t, 0),
        0 === (e = n.compareBoundaryPoints(Range.START_TO_END, i)) && (a = !0),
        e
      }
      ),
      function() {
        var e = v.createElement("div")
          , n = "script" + (new Date).getTime();
        e.innerHTML = "<a name='" + n + "'/>";
        var i = v.documentElement;
        i.insertBefore(e, i.firstChild),
        v.getElementById(n) && (B.find.ID = function(e, n, i) {
          if (void 0 !== n.getElementById && !i)
            return (n = n.getElementById(e[1])) ? n.id === e[1] || void 0 !== n.getAttributeNode && n.getAttributeNode("id").nodeValue === e[1] ? [n] : t : []
        }
        ,
        B.filter.ID = function(e, t) {
          var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
          return 1 === e.nodeType && n && n.nodeValue === t
        }
        ),
        i.removeChild(e),
        i = e = null
      }(),
      (l = v.createElement("div")).appendChild(v.createComment("")),
      l.getElementsByTagName("*").length > 0 && (B.find.TAG = function(e, t) {
        if (t = t.getElementsByTagName(e[1]),
        "*" === e[1]) {
          e = [];
          for (var n = 0; t[n]; n++)
            1 === t[n].nodeType && e.push(t[n]);
          t = e
        }
        return t
      }
      ),
      l.innerHTML = "<a href='#'></a>",
      l.firstChild && void 0 !== l.firstChild.getAttribute && "#" !== l.firstChild.getAttribute("href") && (B.attrHandle.href = function(e) {
        return e.getAttribute("href", 2)
      }
      ),
      l = null,
      v.querySelectorAll && function() {
        var e = s
          , t = v.createElement("div");
        if (t.innerHTML = "<p class='TEST'></p>",
        !t.querySelectorAll || 0 !== t.querySelectorAll(".TEST").length) {
          for (var n in s = function(t, n, i, r) {
            if (n = n || v,
            !r && 9 === n.nodeType && !d(n))
              try {
                return c(n.querySelectorAll(t), i)
              } catch (e) {}
            return e(t, n, i, r)
          }
          ,
          e)
            s[n] = e[n];
          t = null
        }
      }(),
      function() {
        var e = v.createElement("div");
        e.innerHTML = "<div class='test e'></div><div class='test'></div>",
        e.getElementsByClassName && 0 !== e.getElementsByClassName("e").length && (e.lastChild.className = "e",
        1 !== e.getElementsByClassName("e").length && (B.order.splice(1, 0, "CLASS"),
        B.find.CLASS = function(e, t, n) {
          if (void 0 !== t.getElementsByClassName && !n)
            return t.getElementsByClassName(e[1])
        }
        ,
        e = null))
      }();
      var F = v.compareDocumentPosition ? function(e, t) {
        return !!(16 & e.compareDocumentPosition(t))
      }
      : function(e, t) {
        return e !== t && (!e.contains || e.contains(t))
      }
        , d = function(e) {
        return !!(e = (e ? e.ownerDocument || e : 0).documentElement) && "HTML" !== e.nodeName
      }
        , h = function(e, t) {
        var n, i = [], r = "";
        for (t = t.nodeType ? [t] : t; n = B.match.PSEUDO.exec(e); )
          r += n[0],
          e = e.replace(B.match.PSEUDO, "");
        e = B.relative[e] ? e + "*" : e,
        n = 0;
        for (var o = t.length; n < o; n++)
          s(e, t[n], i);
        return s.filter(r, i)
      };
      p.find = s,
      p.expr = s.selectors,
      p.expr[":"] = p.expr.filters,
      p.unique = s.uniqueSort,
      p.text = e,
      p.isXMLDoc = d,
      p.contains = F
    }();
    var ie = /Until$/
      , re = /^(?:parents|prevUntil|prevAll)/
      , oe = /,/;
    N = Array.prototype.slice;
    var Ee = function(e, t, n) {
      if (p.isFunction(t))
        return p.grep(e, function(e, i) {
          return !!t.call(e, i, e) === n
        });
      if (t.nodeType)
        return p.grep(e, function(e) {
          return e === t === n
        });
      if ("string" == typeof t) {
        var i = p.grep(e, function(e) {
          return 1 === e.nodeType
        });
        if (_.test(t))
          return p.filter(t, i, !n);
        t = p.filter(t, i)
      }
      return p.grep(e, function(e) {
        return p.inArray(e, t) >= 0 === n
      })
    };
    p.fn.extend({
      find: function(e) {
        for (var t = this.pushStack("", "find", e), n = 0, i = 0, r = this.length; i < r; i++)
          if (n = t.length,
          p.find(e, this[i], t),
          i > 0)
            for (var o = n; o < t.length; o++)
              for (var E = 0; E < n; E++)
                if (t[E] === t[o]) {
                  t.splice(o--, 1);
                  break
                }
        return t
      },
      has: function(e) {
        var t = p(e);
        return this.filter(function() {
          for (var e = 0, n = t.length; e < n; e++)
            if (p.contains(this, t[e]))
              return !0
        })
      },
      not: function(e) {
        return this.pushStack(Ee(this, e, !1), "not", e)
      },
      filter: function(e) {
        return this.pushStack(Ee(this, e, !0), "filter", e)
      },
      is: function(e) {
        return !!e && p.filter(e, this).length > 0
      },
      closest: function(e, t) {
        if (p.isArray(e)) {
          var n, i, r = [], o = this[0], E = {};
          if (o && e.length) {
            n = 0;
            for (var a = e.length; n < a; n++)
              E[i = e[n]] || (E[i] = p.expr.match.POS.test(i) ? p(i, t || this.context) : i);
            for (; o && o.ownerDocument && o !== t; ) {
              for (i in E)
                ((n = E[i]).jquery ? n.index(o) > -1 : p(o).is(n)) && (r.push({
                  selector: i,
                  elem: o
                }),
                delete E[i]);
              o = o.parentNode
            }
          }
          return r
        }
        var C = p.expr.match.POS.test(e) ? p(e, t || this.context) : null;
        return this.map(function(n, i) {
          for (; i && i.ownerDocument && i !== t; ) {
            if (C ? C.index(i) > -1 : p(i).is(e))
              return i;
            i = i.parentNode
          }
          return null
        })
      },
      index: function(e) {
        return e && "string" != typeof e ? p.inArray(e.jquery ? e[0] : e, this) : p.inArray(this[0], e ? p(e) : this.parent().children())
      },
      add: function(e, t) {
        return e = "string" == typeof e ? p(e, t || this.context) : p.makeArray(e),
        t = p.merge(this.get(), e),
        this.pushStack(u(e[0]) || u(t[0]) ? t : p.unique(t))
      },
      andSelf: function() {
        return this.add(this.prevObject)
      }
    }),
    p.each({
      parent: function(e) {
        return (e = e.parentNode) && 11 !== e.nodeType ? e : null
      },
      parents: function(e) {
        return p.dir(e, "parentNode")
      },
      parentsUntil: function(e, t, n) {
        return p.dir(e, "parentNode", n)
      },
      next: function(e) {
        return p.nth(e, 2, "nextSibling")
      },
      prev: function(e) {
        return p.nth(e, 2, "previousSibling")
      },
      nextAll: function(e) {
        return p.dir(e, "nextSibling")
      },
      prevAll: function(e) {
        return p.dir(e, "previousSibling")
      },
      nextUntil: function(e, t, n) {
        return p.dir(e, "nextSibling", n)
      },
      prevUntil: function(e, t, n) {
        return p.dir(e, "previousSibling", n)
      },
      siblings: function(e) {
        return p.sibling(e.parentNode.firstChild, e)
      },
      children: function(e) {
        return p.sibling(e.firstChild)
      },
      contents: function(e) {
        return p.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : p.makeArray(e.childNodes)
      }
    }, function(e, t) {
      p.fn[e] = function(n, i) {
        var r = p.map(this, t, n);
        return ie.test(e) || (i = n),
        i && "string" == typeof i && (r = p.filter(i, r)),
        r = this.length > 1 ? p.unique(r) : r,
        (this.length > 1 || oe.test(i)) && re.test(e) && (r = r.reverse()),
        this.pushStack(r, e, N.call(arguments).join(","))
      }
    }),
    p.extend({
      filter: function(e, t, n) {
        return n && (e = ":not(" + e + ")"),
        p.find.matches(e, t)
      },
      dir: function(e, n, i) {
        var r = [];
        for (e = e[n]; e && 9 !== e.nodeType && (i === t || 1 !== e.nodeType || !p(e).is(i)); )
          1 === e.nodeType && r.push(e),
          e = e[n];
        return r
      },
      nth: function(e, t, n) {
        t = t || 1;
        for (var i = 0; e && (1 !== e.nodeType || ++i !== t); e = e[n])
          ;
        return e
      },
      sibling: function(e, t) {
        for (var n = []; e; e = e.nextSibling)
          1 === e.nodeType && e !== t && n.push(e);
        return n
      }
    });
    var ae = / jQuery\d+="(?:\d+|null)"/g
      , Ce = /^\s+/
      , se = /(<([\w:]+)[^>]*?)\/>/g
      , Be = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i
      , De = /<([\w:]+)/
      , ue = /<tbody/i
      , Ae = /<|&#?\w+;/
      , le = /<script|<object|<embed|<option|<style/i
      , ce = /checked\s*(?:[^=]|=\s*.checked.)/i
      , Fe = function(e, t, n) {
      return Be.test(n) ? e : t + "></" + n + ">"
    }
      , de = {
      option: [1, "<select multiple='multiple'>", "</select>"],
      legend: [1, "<fieldset>", "</fieldset>"],
      thead: [1, "<table>", "</table>"],
      tr: [2, "<table><tbody>", "</tbody></table>"],
      td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
      col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
      area: [1, "<map>", "</map>"],
      _default: [0, "", ""]
    };
    de.optgroup = de.option,
    de.tbody = de.tfoot = de.colgroup = de.caption = de.thead,
    de.th = de.td,
    p.support.htmlSerialize || (de._default = [1, "div<div>", "</div>"]),
    p.fn.extend({
      text: function(e) {
        return p.isFunction(e) ? this.each(function(t) {
          var n = p(this);
          n.text(e.call(this, t, n.text()))
        }) : "object" !== n(e) && e !== t ? this.empty().append((this[0] && this[0].ownerDocument || v).createTextNode(e)) : p.text(this)
      },
      wrapAll: function(e) {
        if (p.isFunction(e))
          return this.each(function(t) {
            p(this).wrapAll(e.call(this, t))
          });
        if (this[0]) {
          var t = p(e, this[0].ownerDocument).eq(0).clone(!0);
          this[0].parentNode && t.insertBefore(this[0]),
          t.map(function() {
            for (var e = this; e.firstChild && 1 === e.firstChild.nodeType; )
              e = e.firstChild;
            return e
          }).append(this)
        }
        return this
      },
      wrapInner: function(e) {
        return p.isFunction(e) ? this.each(function(t) {
          p(this).wrapInner(e.call(this, t))
        }) : this.each(function() {
          var t = p(this)
            , n = t.contents();
          n.length ? n.wrapAll(e) : t.append(e)
        })
      },
      wrap: function(e) {
        return this.each(function() {
          p(this).wrapAll(e)
        })
      },
      unwrap: function() {
        return this.parent().each(function() {
          p.nodeName(this, "body") || p(this).replaceWith(this.childNodes)
        }).end()
      },
      append: function() {
        return this.domManip(arguments, !0, function(e) {
          1 === this.nodeType && this.appendChild(e)
        })
      },
      prepend: function() {
        return this.domManip(arguments, !0, function(e) {
          1 === this.nodeType && this.insertBefore(e, this.firstChild)
        })
      },
      before: function() {
        if (this[0] && this[0].parentNode)
          return this.domManip(arguments, !1, function(e) {
            this.parentNode.insertBefore(e, this)
          });
        if (arguments.length) {
          var e = p(arguments[0]);
          return e.push.apply(e, this.toArray()),
          this.pushStack(e, "before", arguments)
        }
      },
      after: function() {
        if (this[0] && this[0].parentNode)
          return this.domManip(arguments, !1, function(e) {
            this.parentNode.insertBefore(e, this.nextSibling)
          });
        if (arguments.length) {
          var e = this.pushStack(this, "after", arguments);
          return e.push.apply(e, p(arguments[0]).toArray()),
          e
        }
      },
      remove: function(e, t) {
        for (var n, i = 0; null != (n = this[i]); i++)
          e && !p.filter(e, [n]).length || (t || 1 !== n.nodeType || (p.cleanData(n.getElementsByTagName("*")),
          p.cleanData([n])),
          n.parentNode && n.parentNode.removeChild(n));
        return this
      },
      empty: function() {
        for (var e, t = 0; null != (e = this[t]); t++)
          for (1 === e.nodeType && p.cleanData(e.getElementsByTagName("*")); e.firstChild; )
            e.removeChild(e.firstChild);
        return this
      },
      clone: function(e) {
        var t = this.map(function() {
          if (p.support.noCloneEvent || p.isXMLDoc(this))
            return this.cloneNode(!0);
          var e = this.outerHTML
            , t = this.ownerDocument;
          return e || ((e = t.createElement("div")).appendChild(this.cloneNode(!0)),
          e = e.innerHTML),
          p.clean([e.replace(ae, "").replace(/=([^="'>\s]+\/)>/g, '="$1">').replace(Ce, "")], t)[0]
        });
        return !0 === e && (A(this, t),
        A(this.find("*"), t.find("*"))),
        t
      },
      html: function(e) {
        if (e === t)
          return this[0] && 1 === this[0].nodeType ? this[0].innerHTML.replace(ae, "") : null;
        if ("string" != typeof e || le.test(e) || !p.support.leadingWhitespace && Ce.test(e) || de[(De.exec(e) || ["", ""])[1].toLowerCase()])
          p.isFunction(e) ? this.each(function(t) {
            var n = p(this)
              , i = n.html();
            n.empty().append(function() {
              return e.call(this, t, i)
            })
          }) : this.empty().append(e);
        else {
          e = e.replace(se, Fe);
          try {
            for (var n = 0, i = this.length; n < i; n++)
              1 === this[n].nodeType && (p.cleanData(this[n].getElementsByTagName("*")),
              this[n].innerHTML = e)
          } catch (t) {
            this.empty().append(e)
          }
        }
        return this
      },
      replaceWith: function(e) {
        return this[0] && this[0].parentNode ? p.isFunction(e) ? this.each(function(t) {
          var n = p(this)
            , i = n.html();
          n.replaceWith(e.call(this, t, i))
        }) : ("string" != typeof e && (e = p(e).detach()),
        this.each(function() {
          var t = this.nextSibling
            , n = this.parentNode;
          p(this).remove(),
          t ? p(t).before(e) : p(n).append(e)
        })) : this.pushStack(p(p.isFunction(e) ? e() : e), "replaceWith", e)
      },
      detach: function(e) {
        return this.remove(e, !0)
      },
      domManip: function(e, n, i) {
        function o(e) {
          return p.nodeName(e, "table") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
        }
        var E, a, C, s = e[0], B = [];
        if (!p.support.checkClone && 3 === arguments.length && "string" == typeof s && ce.test(s))
          return this.each(function() {
            p(this).domManip(e, n, i, !0)
          });
        if (p.isFunction(s))
          return this.each(function(r) {
            var o = p(this);
            e[0] = s.call(this, r, n ? o.html() : t),
            o.domManip(e, n, i)
          });
        if (this[0]) {
          if (E = s && s.parentNode,
          a = 1 === (C = (E = p.support.parentNode && E && 11 === E.nodeType && E.childNodes.length === this.length ? {
            fragment: E
          } : l(e, this, B)).fragment).childNodes.length ? C = C.firstChild : C.firstChild) {
            n = n && p.nodeName(a, "tr");
            for (var D = 0, u = this.length; D < u; D++)
              i.call(n ? o(this[D]) : this[D], D > 0 || E.cacheable || this.length > 1 ? C.cloneNode(!0) : C)
          }
          B.length && p.each(B, r)
        }
        return this
      }
    }),
    p.fragments = {},
    p.each({
      appendTo: "append",
      prependTo: "prepend",
      insertBefore: "before",
      insertAfter: "after",
      replaceAll: "replaceWith"
    }, function(e, t) {
      p.fn[e] = function(n) {
        var i = [];
        n = p(n);
        var r = 1 === this.length && this[0].parentNode;
        if (r && 11 === r.nodeType && 1 === r.childNodes.length && 1 === n.length)
          return n[t](this[0]),
          this;
        r = 0;
        for (var o = n.length; r < o; r++) {
          var E = (r > 0 ? this.clone(!0) : this).get();
          p.fn[t].apply(p(n[r]), E),
          i = i.concat(E)
        }
        return this.pushStack(i, e, n.selector)
      }
    }),
    p.extend({
      clean: function(e, t, n, i) {
        void 0 === (t = t || v).createElement && (t = t.ownerDocument || t[0] && t[0].ownerDocument || v);
        for (var r, o = [], E = 0; null != (r = e[E]); E++)
          if ("number" == typeof r && (r += ""),
          r) {
            if ("string" != typeof r || Ae.test(r)) {
              if ("string" == typeof r) {
                r = r.replace(se, Fe);
                var a = (De.exec(r) || ["", ""])[1].toLowerCase()
                  , C = de[a] || de._default
                  , s = C[0]
                  , B = t.createElement("div");
                for (B.innerHTML = C[1] + r + C[2]; s--; )
                  B = B.lastChild;
                if (!p.support.tbody)
                  for (s = ue.test(r),
                  C = (a = "table" !== a || s ? "<table>" !== C[1] || s ? [] : B.childNodes : B.firstChild && B.firstChild.childNodes).length - 1; C >= 0; --C)
                    p.nodeName(a[C], "tbody") && !a[C].childNodes.length && a[C].parentNode.removeChild(a[C]);
                !p.support.leadingWhitespace && Ce.test(r) && B.insertBefore(t.createTextNode(Ce.exec(r)[0]), B.firstChild),
                r = B.childNodes
              }
            } else
              r = t.createTextNode(r);
            r.nodeType ? o.push(r) : o = p.merge(o, r)
          }
        if (n)
          for (E = 0; o[E]; E++)
            !i || !p.nodeName(o[E], "script") || o[E].type && "text/javascript" !== o[E].type.toLowerCase() ? (1 === o[E].nodeType && o.splice.apply(o, [E + 1, 0].concat(p.makeArray(o[E].getElementsByTagName("script")))),
            n.appendChild(o[E])) : i.push(o[E].parentNode ? o[E].parentNode.removeChild(o[E]) : o[E]);
        return o
      },
      cleanData: function(e) {
        for (var t, n, i, r = p.cache, o = p.event.special, E = p.support.deleteExpando, a = 0; null != (i = e[a]); a++)
          if (n = i[p.expando]) {
            if ((t = r[n]).events)
              for (var C in t.events)
                o[C] ? p.event.remove(i, C) : J(i, C, t.handle);
            E ? delete i[p.expando] : i.removeAttribute && i.removeAttribute(p.expando),
            delete r[n]
          }
      }
    });
    var he = /z-?index|font-?weight|opacity|zoom|line-?height/i
      , pe = /alpha\([^)]*\)/
      , fe = /opacity=([^)]*)/
      , me = /float/i
      , ve = /-([a-z])/gi
      , ge = /([A-Z])/g
      , _e = /^-?\d+(?:px)?$/i
      , ye = /^-?\d/
      , be = {
      position: "absolute",
      visibility: "hidden",
      display: "block"
    }
      , we = ["Left", "Right"]
      , xe = ["Top", "Bottom"]
      , ke = v.defaultView && v.defaultView.getComputedStyle
      , Te = p.support.cssFloat ? "cssFloat" : "styleFloat"
      , je = function(e, t) {
      return t.toUpperCase()
    };
    p.fn.css = function(e, n) {
      return o(this, e, n, !0, function(e, n, i) {
        if (i === t)
          return p.curCSS(e, n);
        "number" != typeof i || he.test(n) || (i += "px"),
        p.style(e, n, i)
      })
    }
    ,
    p.extend({
      style: function(e, n, i) {
        if (!e || 3 === e.nodeType || 8 === e.nodeType)
          return t;
        ("width" === n || "height" === n) && parseFloat(i) < 0 && (i = t);
        var r = e.style || e
          , o = i !== t;
        return p.support.opacity || "opacity" !== n ? (me.test(n) && (n = Te),
        n = n.replace(ve, je),
        o && (r[n] = i),
        r[n]) : (o && (r.zoom = 1,
        n = parseInt(i, 10) + "" == "NaN" ? "" : "alpha(opacity=" + 100 * i + ")",
        e = r.filter || p.curCSS(e, "filter") || "",
        r.filter = pe.test(e) ? e.replace(pe, n) : n),
        r.filter && r.filter.indexOf("opacity=") >= 0 ? parseFloat(fe.exec(r.filter)[1]) / 100 + "" : "")
      },
      css: function(e, t, n, i) {
        if ("width" === t || "height" === t) {
          var r, o = function() {
            r = "width" === t ? e.offsetWidth : e.offsetHeight,
            "border" !== i && p.each(E, function() {
              i || (r -= parseFloat(p.curCSS(e, "padding" + this, !0)) || 0),
              "margin" === i ? r += parseFloat(p.curCSS(e, "margin" + this, !0)) || 0 : r -= parseFloat(p.curCSS(e, "border" + this + "Width", !0)) || 0
            })
          }, E = "width" === t ? we : xe;
          return 0 !== e.offsetWidth ? o() : p.swap(e, be, o),
          Math.max(0, Math.round(r))
        }
        return p.curCSS(e, t, n)
      },
      curCSS: function(e, t, n) {
        var i, r = e.style;
        if (!p.support.opacity && "opacity" === t && e.currentStyle)
          return "" === (i = fe.test(e.currentStyle.filter || "") ? parseFloat(RegExp.$1) / 100 + "" : "") ? "1" : i;
        if (me.test(t) && (t = Te),
        !n && r && r[t])
          i = r[t];
        else if (ke) {
          if (me.test(t) && (t = "float"),
          t = t.replace(ge, "-$1").toLowerCase(),
          !(r = e.ownerDocument.defaultView))
            return null;
          (e = r.getComputedStyle(e, null)) && (i = e.getPropertyValue(t)),
          "opacity" === t && "" === i && (i = "1")
        } else if (e.currentStyle && (n = t.replace(ve, je),
        i = e.currentStyle[t] || e.currentStyle[n],
        !_e.test(i) && ye.test(i))) {
          t = r.left;
          var o = e.runtimeStyle.left;
          e.runtimeStyle.left = e.currentStyle.left,
          r.left = "fontSize" === n ? "1em" : i || 0,
          i = r.pixelLeft + "px",
          r.left = t,
          e.runtimeStyle.left = o
        }
        return i
      },
      swap: function(e, t, n) {
        var i = {};
        for (var r in t)
          i[r] = e.style[r],
          e.style[r] = t[r];
        for (r in n.call(e),
        t)
          e.style[r] = i[r]
      }
    }),
    p.expr && p.expr.filters && (p.expr.filters.hidden = function(e) {
      var t = e.offsetWidth
        , n = e.offsetHeight
        , i = "tr" === e.nodeName.toLowerCase();
      return 0 === t && 0 === n && !i || !(t > 0 && n > 0 && !i) && "none" === p.curCSS(e, "display")
    }
    ,
    p.expr.filters.visible = function(e) {
      return !p.expr.filters.hidden(e)
    }
    );
    var Ie = E()
      , Se = /<script(.|\s)*?\/script>/gi
      , Ne = /select|textarea/i
      , Me = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i
      , Pe = /=\?(&|$)/
      , Oe = /\?/
      , Re = /(\?|&)_=.*?(&|$)/
      , Le = /^(\w+:)?\/\/([^\/?#]+)/
      , Ge = /%20/g
      , Ue = p.fn.load;
    p.fn.extend({
      load: function(e, t, i) {
        if ("string" != typeof e)
          return Ue.call(this, e);
        if (!this.length)
          return this;
        var r = e.indexOf(" ");
        if (r >= 0) {
          var o = e.slice(r, e.length);
          e = e.slice(0, r)
        }
        r = "GET",
        t && (p.isFunction(t) ? (i = t,
        t = null) : "object" === n(t) && (t = p.param(t, p.ajaxSettings.traditional),
        r = "POST"));
        var E = this;
        return p.ajax({
          url: e,
          type: r,
          dataType: "html",
          data: t,
          complete: function(e, t) {
            "success" !== t && "notmodified" !== t || E.html(o ? p("<div />").append(e.responseText.replace(Se, "")).find(o) : e.responseText),
            i && E.each(i, [e.responseText, t, e])
          }
        }),
        this
      },
      serialize: function() {
        return p.param(this.serializeArray())
      },
      serializeArray: function() {
        return this.map(function() {
          return this.elements ? p.makeArray(this.elements) : this
        }).filter(function() {
          return this.name && !this.disabled && (this.checked || Ne.test(this.nodeName) || Me.test(this.type))
        }).map(function(e, t) {
          return null == (e = p(this).val()) ? null : p.isArray(e) ? p.map(e, function(e) {
            return {
              name: t.name,
              value: e
            }
          }) : {
            name: t.name,
            value: e
          }
        }).get()
      }
    }),
    p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(e, t) {
      p.fn[t] = function(e) {
        return this.bind(t, e)
      }
    }),
    p.extend({
      get: function(e, t, n, i) {
        return p.isFunction(t) && (i = i || n,
        n = t,
        t = null),
        p.ajax({
          type: "GET",
          url: e,
          data: t,
          success: n,
          dataType: i
        })
      },
      getScript: function(e, t) {
        return p.get(e, null, t, "script")
      },
      getJSON: function(e, t, n) {
        return p.get(e, t, n, "json")
      },
      post: function(e, t, n, i) {
        return p.isFunction(t) && (i = i || n,
        n = t,
        t = {}),
        p.ajax({
          type: "POST",
          url: e,
          data: t,
          success: n,
          dataType: i
        })
      },
      ajaxSetup: function(e) {
        p.extend(p.ajaxSettings, e)
      },
      ajaxSettings: {
        url: location.href,
        global: !0,
        type: "GET",
        contentType: "application/x-www-form-urlencoded",
        processData: !0,
        async: !0,
        xhr: !e.XMLHttpRequest || "file:" === e.location.protocol && e.ActiveXObject ? function() {
          try {
            return new e.ActiveXObject("Microsoft.XMLHTTP")
          } catch (e) {}
        }
        : function() {
          return new e.XMLHttpRequest
        }
        ,
        accepts: {
          xml: "application/xml, text/xml",
          html: "text/html",
          script: "text/javascript, application/javascript",
          json: "application/json, text/javascript",
          text: "text/plain",
          _default: "*/*"
        }
      },
      lastModified: {},
      etag: {},
      ajax: function(n) {
        function i() {
          B.success && B.success.call(D, s, C, f),
          B.global && o("ajaxSuccess", [f, B])
        }
        function r() {
          B.complete && B.complete.call(D, f, C),
          B.global && o("ajaxComplete", [f, B]),
          B.global && !--p.active && p.event.trigger("ajaxStop")
        }
        function o(e, t) {
          (B.context ? p(B.context) : p.event).trigger(e, t)
        }
        var a, C, s, B = p.extend(!0, {}, p.ajaxSettings, n), D = n && n.context || B, u = B.type.toUpperCase();
        if (B.data && B.processData && "string" != typeof B.data && (B.data = p.param(B.data, B.traditional)),
        "jsonp" === B.dataType && ("GET" === u ? Pe.test(B.url) || (B.url += (Oe.test(B.url) ? "&" : "?") + (B.jsonp || "callback") + "=?") : B.data && Pe.test(B.data) || (B.data = (B.data ? B.data + "&" : "") + (B.jsonp || "callback") + "=?"),
        B.dataType = "json"),
        "json" === B.dataType && (B.data && Pe.test(B.data) || Pe.test(B.url)) && (a = B.jsonpCallback || "jsonp" + Ie++,
        B.data && (B.data = (B.data + "").replace(Pe, "=" + a + "$1")),
        B.url = B.url.replace(Pe, "=" + a + "$1"),
        B.dataType = "script",
        e[a] = e[a] || function(n) {
          s = n,
          i(),
          r(),
          e[a] = t;
          try {
            delete e[a]
          } catch (e) {}
          c && c.removeChild(F)
        }
        ),
        "script" === B.dataType && null === B.cache && (B.cache = !1),
        !1 === B.cache && "GET" === u) {
          var A = E()
            , l = B.url.replace(Re, "$1_=" + A + "$2");
          B.url = l + (l === B.url ? (Oe.test(B.url) ? "&" : "?") + "_=" + A : "")
        }
        if (B.data && "GET" === u && (B.url += (Oe.test(B.url) ? "&" : "?") + B.data),
        B.global && !p.active++ && p.event.trigger("ajaxStart"),
        A = (A = Le.exec(B.url)) && (A[1] && A[1] !== location.protocol || A[2] !== location.host),
        "script" === B.dataType && "GET" === u && A) {
          var c = v.getElementsByTagName("head")[0] || v.documentElement
            , F = v.createElement("script");
          if (F.src = B.url,
          B.scriptCharset && (F.charset = B.scriptCharset),
          !a) {
            var d = !1;
            F.onload = F.onreadystatechange = function() {
              d || this.readyState && "loaded" !== this.readyState && "complete" !== this.readyState || (d = !0,
              i(),
              r(),
              F.onload = F.onreadystatechange = null,
              c && F.parentNode && c.removeChild(F))
            }
          }
          return c.insertBefore(F, c.firstChild),
          t
        }
        var h = !1
          , f = B.xhr();
        if (f) {
          B.username ? f.open(u, B.url, B.async, B.username, B.password) : f.open(u, B.url, B.async);
          try {
            (B.data || n && n.contentType) && f.setRequestHeader("Content-Type", B.contentType),
            B.ifModified && (p.lastModified[B.url] && f.setRequestHeader("If-Modified-Since", p.lastModified[B.url]),
            p.etag[B.url] && f.setRequestHeader("If-None-Match", p.etag[B.url])),
            A || f.setRequestHeader("X-Requested-With", "XMLHttpRequest"),
            f.setRequestHeader("Accept", B.dataType && B.accepts[B.dataType] ? B.accepts[B.dataType] + ", */*" : B.accepts._default)
          } catch (e) {}
          if (B.beforeSend && !1 === B.beforeSend.call(D, f, B))
            return B.global && !--p.active && p.event.trigger("ajaxStop"),
            f.abort(),
            !1;
          B.global && o("ajaxSend", [f, B]);
          var m = f.onreadystatechange = function(e) {
            if (f && 0 !== f.readyState && "abort" !== e) {
              if (!h && f && (4 === f.readyState || "timeout" === e)) {
                var t;
                if (h = !0,
                f.onreadystatechange = p.noop,
                "success" === (C = "timeout" === e ? "timeout" : p.httpSuccess(f) ? B.ifModified && p.httpNotModified(f, B.url) ? "notmodified" : "success" : "error"))
                  try {
                    s = p.httpData(f, B.dataType, B)
                  } catch (e) {
                    C = "parsererror",
                    t = e
                  }
                "success" === C || "notmodified" === C ? a || i() : p.handleError(B, f, C, t),
                r(),
                "timeout" === e && f.abort(),
                B.async && (f = null)
              }
            } else
              h || r(),
              h = !0,
              f && (f.onreadystatechange = p.noop)
          }
          ;
          try {
            var g = f.abort;
            f.abort = function() {
              f && g.call(f),
              m("abort")
            }
          } catch (e) {}
          B.async && B.timeout > 0 && setTimeout(function() {
            f && !h && m("timeout")
          }, B.timeout);
          try {
            f.send("POST" === u || "PUT" === u || "DELETE" === u ? B.data : null)
          } catch (e) {
            p.handleError(B, f, null, e),
            r()
          }
          return B.async || m(),
          f
        }
      },
      handleError: function(e, t, n, i) {
        e.error && e.error.call(e.context || e, t, n, i),
        e.global && (e.context ? p(e.context) : p.event).trigger("ajaxError", [t, e, i])
      },
      active: 0,
      httpSuccess: function(e) {
        try {
          return !e.status && "file:" === location.protocol || e.status >= 200 && e.status < 300 || 304 === e.status || 1223 === e.status || 0 === e.status
        } catch (e) {}
        return !1
      },
      httpNotModified: function(e, t) {
        var n = e.getResponseHeader("Last-Modified")
          , i = e.getResponseHeader("Etag");
        return n && (p.lastModified[t] = n),
        i && (p.etag[t] = i),
        304 === e.status || 0 === e.status
      },
      httpData: function(e, t, n) {
        var i = e.getResponseHeader("content-type") || ""
          , r = "xml" === t || !t && i.indexOf("xml") >= 0;
        return e = r ? e.responseXML : e.responseText,
        r && "parsererror" === e.documentElement.nodeName && p.error("parsererror"),
        n && n.dataFilter && (e = n.dataFilter(e, t)),
        "string" == typeof e && ("json" === t || !t && i.indexOf("json") >= 0 ? e = p.parseJSON(e) : ("script" === t || !t && i.indexOf("javascript") >= 0) && p.globalEval(e)),
        e
      },
      param: function(e, i) {
        function r(e, t) {
          p.isArray(t) ? p.each(t, function(t, E) {
            i || /\[\]$/.test(e) ? o(e, E) : r(e + "[" + ("object" === n(E) || p.isArray(E) ? t : "") + "]", E)
          }) : i || null == t || "object" !== n(t) ? o(e, t) : p.each(t, function(t, n) {
            r(e + "[" + t + "]", n)
          })
        }
        function o(e, t) {
          t = p.isFunction(t) ? t() : t,
          E[E.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
        }
        var E = [];
        if (i === t && (i = p.ajaxSettings.traditional),
        p.isArray(e) || e.jquery)
          p.each(e, function() {
            o(this.name, this.value)
          });
        else
          for (var a in e)
            e.hasOwnProperty(a) && r(a, e[a]);
        return E.join("&").replace(Ge, "+")
      }
    });
    var Ye, Qe = {}, We = /toggle|show|hide/, He = /^([+-]=)?([\d+-.]+)(.*)$/, Ze = [["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"], ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"], ["opacity"]];
    p.fn.extend({
      show: function(e, t) {
        if (e || 0 === e)
          return this.animate(c("show", 3), e, t);
        for (e = 0,
        t = this.length; e < t; e++) {
          var n = p.data(this[e], "olddisplay");
          if (this[e].style.display = n || "",
          "none" === p.css(this[e], "display")) {
            var i;
            if (n = this[e].nodeName,
            Qe[n])
              i = Qe[n];
            else {
              var r = p("<" + n + " />").appendTo("body");
              "none" === (i = r.css("display")) && (i = "block"),
              r.remove(),
              Qe[n] = i
            }
            p.data(this[e], "olddisplay", i)
          }
        }
        for (e = 0,
        t = this.length; e < t; e++)
          this[e].style.display = p.data(this[e], "olddisplay") || "";
        return this
      },
      hide: function(e, t) {
        if (e || 0 === e)
          return this.animate(c("hide", 3), e, t);
        for (e = 0,
        t = this.length; e < t; e++) {
          var n = p.data(this[e], "olddisplay");
          !n && "none" !== n && p.data(this[e], "olddisplay", p.css(this[e], "display"))
        }
        for (e = 0,
        t = this.length; e < t; e++)
          this[e].style.display = "none";
        return this
      },
      _toggle: p.fn.toggle,
      toggle: function(e, t) {
        var n = "boolean" == typeof e;
        return p.isFunction(e) && p.isFunction(t) ? this._toggle.apply(this, arguments) : null == e || n ? this.each(function() {
          var t = n ? e : p(this).is(":hidden");
          p(this)[t ? "show" : "hide"]()
        }) : this.animate(c("toggle", 3), e, t),
        this
      },
      fadeTo: function(e, t, n) {
        return this.filter(":hidden").css("opacity", 0).show().end().animate({
          opacity: t
        }, e, n)
      },
      animate: function(e, t, n, i) {
        var r = p.speed(t, n, i);
        return p.isEmptyObject(e) ? this.each(r.complete) : this[!1 === r.queue ? "each" : "queue"](function() {
          var t, n = p.extend({}, r), i = 1 === this.nodeType && p(this).is(":hidden"), o = this;
          for (t in e) {
            var E = t.replace(ve, je);
            if (t !== E && (e[E] = e[t],
            delete e[t],
            t = E),
            "hide" === e[t] && i || "show" === e[t] && !i)
              return n.complete.call(this);
            "height" !== t && "width" !== t || !this.style || (n.display = p.css(this, "display"),
            n.overflow = this.style.overflow),
            p.isArray(e[t]) && ((n.specialEasing = n.specialEasing || {})[t] = e[t][1],
            e[t] = e[t][0])
          }
          return null != n.overflow && (this.style.overflow = "hidden"),
          n.curAnim = p.extend({}, e),
          p.each(e, function(t, r) {
            var E = new p.fx(o,n,t);
            if (We.test(r))
              E["toggle" === r ? i ? "show" : "hide" : r](e);
            else {
              var a = He.exec(r)
                , C = E.cur(!0) || 0;
              if (a) {
                r = parseFloat(a[2]);
                var s = a[3] || "px";
                "px" !== s && (o.style[t] = (r || 1) + s,
                C = (r || 1) / E.cur(!0) * C,
                o.style[t] = C + s),
                a[1] && (r = ("-=" === a[1] ? -1 : 1) * r + C),
                E.custom(C, r, s)
              } else
                E.custom(C, r, "")
            }
          }),
          !0
        })
      },
      stop: function(e, t) {
        var n = p.timers;
        return e && this.queue([]),
        this.each(function() {
          for (var e = n.length - 1; e >= 0; e--)
            n[e].elem === this && (t && n[e](!0),
            n.splice(e, 1))
        }),
        t || this.dequeue(),
        this
      }
    }),
    p.each({
      slideDown: c("show", 1),
      slideUp: c("hide", 1),
      slideToggle: c("toggle", 1),
      fadeIn: {
        opacity: "show"
      },
      fadeOut: {
        opacity: "hide"
      }
    }, function(e, t) {
      p.fn[e] = function(e, n) {
        return this.animate(t, e, n)
      }
    }),
    p.extend({
      speed: function(e, t, i) {
        var r = e && "object" === n(e) ? e : {
          complete: i || !i && t || p.isFunction(e) && e,
          duration: e,
          easing: i && t || t && !p.isFunction(t) && t
        };
        return r.duration = p.fx.off ? 0 : "number" == typeof r.duration ? r.duration : p.fx.speeds[r.duration] || p.fx.speeds._default,
        r.old = r.complete,
        r.complete = function() {
          !1 !== r.queue && p(this).dequeue(),
          p.isFunction(r.old) && r.old.call(this)
        }
        ,
        r
      },
      easing: {
        linear: function(e, t, n, i) {
          return n + i * e
        },
        swing: function(e, t, n, i) {
          return (-Math.cos(e * Math.PI) / 2 + .5) * i + n
        }
      },
      timers: [],
      fx: function(e, t, n) {
        this.options = t,
        this.elem = e,
        this.prop = n,
        t.orig || (t.orig = {})
      }
    }),
    p.fx.prototype = {
      update: function() {
        this.options.step && this.options.step.call(this.elem, this.now, this),
        (p.fx.step[this.prop] || p.fx.step._default)(this),
        "height" !== this.prop && "width" !== this.prop || !this.elem.style || (this.elem.style.display = "block")
      },
      cur: function(e) {
        return null == this.elem[this.prop] || this.elem.style && null != this.elem.style[this.prop] ? (e = parseFloat(p.css(this.elem, this.prop, e))) && e > -1e4 ? e : parseFloat(p.curCSS(this.elem, this.prop)) || 0 : this.elem[this.prop]
      },
      custom: function(e, t, n) {
        function i(e) {
          return r.step(e)
        }
        this.startTime = E(),
        this.start = e,
        this.end = t,
        this.unit = n || this.unit || "px",
        this.now = this.start,
        this.pos = this.state = 0;
        var r = this;
        i.elem = this.elem,
        i() && p.timers.push(i) && !Ye && (Ye = setInterval(p.fx.tick, 13))
      },
      show: function() {
        this.options.orig[this.prop] = p.style(this.elem, this.prop),
        this.options.show = !0,
        this.custom("width" === this.prop || "height" === this.prop ? 1 : 0, this.cur()),
        p(this.elem).show()
      },
      hide: function() {
        this.options.orig[this.prop] = p.style(this.elem, this.prop),
        this.options.hide = !0,
        this.custom(this.cur(), 0)
      },
      step: function(e) {
        var t = E()
          , n = !0;
        if (e || t >= this.options.duration + this.startTime) {
          for (var i in this.now = this.end,
          this.pos = this.state = 1,
          this.update(),
          this.options.curAnim[this.prop] = !0,
          this.options.curAnim)
            !0 !== this.options.curAnim[i] && (n = !1);
          if (n) {
            if (null != this.options.display && (this.elem.style.overflow = this.options.overflow,
            e = p.data(this.elem, "olddisplay"),
            this.elem.style.display = e || this.options.display,
            "none" === p.css(this.elem, "display") && (this.elem.style.display = "block")),
            this.options.hide && p(this.elem).hide(),
            this.options.hide || this.options.show)
              for (var r in this.options.curAnim)
                p.style(this.elem, r, this.options.orig[r]);
            this.options.complete.call(this.elem)
          }
          return !1
        }
        return r = t - this.startTime,
        this.state = r / this.options.duration,
        e = this.options.easing || (p.easing.swing ? "swing" : "linear"),
        this.pos = p.easing[this.options.specialEasing && this.options.specialEasing[this.prop] || e](this.state, r, 0, 1, this.options.duration),
        this.now = this.start + (this.end - this.start) * this.pos,
        this.update(),
        !0
      }
    },
    p.extend(p.fx, {
      tick: function() {
        for (var e = p.timers, t = 0; t < e.length; t++)
          e[t]() || e.splice(t--, 1);
        e.length || p.fx.stop()
      },
      stop: function() {
        clearInterval(Ye),
        Ye = null
      },
      speeds: {
        slow: 600,
        fast: 200,
        _default: 400
      },
      step: {
        opacity: function(e) {
          p.style(e.elem, "opacity", e.now)
        },
        _default: function(e) {
          e.elem.style && null != e.elem.style[e.prop] ? e.elem.style[e.prop] = ("width" === e.prop || "height" === e.prop ? Math.max(0, e.now) : e.now) + e.unit : e.elem[e.prop] = e.now
        }
      }
    }),
    p.expr && p.expr.filters && (p.expr.filters.animated = function(e) {
      return p.grep(p.timers, function(t) {
        return e === t.elem
      }).length
    }
    ),
    p.fn.offset = "getBoundingClientRect"in v.documentElement ? function(e) {
      var t = this[0];
      if (e)
        return this.each(function(t) {
          p.offset.setOffset(this, e, t)
        });
      if (!t || !t.ownerDocument)
        return null;
      if (t === t.ownerDocument.body)
        return p.offset.bodyOffset(t);
      var n = t.getBoundingClientRect()
        , i = t.ownerDocument;
      return t = i.body,
      i = i.documentElement,
      {
        top: n.top + (self.pageYOffset || p.support.boxModel && i.scrollTop || t.scrollTop) - (i.clientTop || t.clientTop || 0),
        left: n.left + (self.pageXOffset || p.support.boxModel && i.scrollLeft || t.scrollLeft) - (i.clientLeft || t.clientLeft || 0)
      }
    }
    : function(e) {
      var t = this[0];
      if (e)
        return this.each(function(t) {
          p.offset.setOffset(this, e, t)
        });
      if (!t || !t.ownerDocument)
        return null;
      if (t === t.ownerDocument.body)
        return p.offset.bodyOffset(t);
      p.offset.initialize();
      var n, i = t.offsetParent, r = t, o = t.ownerDocument, E = o.documentElement, a = o.body;
      r = (o = o.defaultView) ? o.getComputedStyle(t, null) : t.currentStyle;
      for (var C = t.offsetTop, s = t.offsetLeft; (t = t.parentNode) && t !== a && t !== E && (!p.offset.supportsFixedPosition || "fixed" !== r.position); )
        n = o ? o.getComputedStyle(t, null) : t.currentStyle,
        C -= t.scrollTop,
        s -= t.scrollLeft,
        t === i && (C += t.offsetTop,
        s += t.offsetLeft,
        !p.offset.doesNotAddBorder || p.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(t.nodeName) || (C += parseFloat(n.borderTopWidth) || 0,
        s += parseFloat(n.borderLeftWidth) || 0),
        r = i,
        i = t.offsetParent),
        p.offset.subtractsBorderForOverflowNotVisible && "visible" !== n.overflow && (C += parseFloat(n.borderTopWidth) || 0,
        s += parseFloat(n.borderLeftWidth) || 0),
        r = n;
      return "relative" !== r.position && "static" !== r.position || (C += a.offsetTop,
      s += a.offsetLeft),
      p.offset.supportsFixedPosition && "fixed" === r.position && (C += Math.max(E.scrollTop, a.scrollTop),
      s += Math.max(E.scrollLeft, a.scrollLeft)),
      {
        top: C,
        left: s
      }
    }
    ,
    p.offset = {
      initialize: function() {
        var e, t, n, i = v.body, r = v.createElement("div"), o = parseFloat(p.curCSS(i, "marginTop", !0)) || 0;
        p.extend(r.style, {
          position: "absolute",
          top: 0,
          left: 0,
          margin: 0,
          border: 0,
          width: "1px",
          height: "1px",
          visibility: "hidden"
        }),
        r.innerHTML = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>",
        i.insertBefore(r, i.firstChild),
        t = (e = r.firstChild).firstChild,
        n = e.nextSibling.firstChild.firstChild,
        this.doesNotAddBorder = 5 !== t.offsetTop,
        this.doesAddBorderForTableAndCells = 5 === n.offsetTop,
        t.style.position = "fixed",
        t.style.top = "20px",
        this.supportsFixedPosition = 20 === t.offsetTop || 15 === t.offsetTop,
        t.style.position = t.style.top = "",
        e.style.overflow = "hidden",
        e.style.position = "relative",
        this.subtractsBorderForOverflowNotVisible = -5 === t.offsetTop,
        this.doesNotIncludeMarginInBodyOffset = i.offsetTop !== o,
        i.removeChild(r),
        p.offset.initialize = p.noop
      },
      bodyOffset: function(e) {
        var t = e.offsetTop
          , n = e.offsetLeft;
        return p.offset.initialize(),
        p.offset.doesNotIncludeMarginInBodyOffset && (t += parseFloat(p.curCSS(e, "marginTop", !0)) || 0,
        n += parseFloat(p.curCSS(e, "marginLeft", !0)) || 0),
        {
          top: t,
          left: n
        }
      },
      setOffset: function(e, t, n) {
        /static/.test(p.curCSS(e, "position")) && (e.style.position = "relative");
        var i = p(e)
          , r = i.offset()
          , o = parseInt(p.curCSS(e, "top", !0), 10) || 0
          , E = parseInt(p.curCSS(e, "left", !0), 10) || 0;
        p.isFunction(t) && (t = t.call(e, n, r)),
        n = {
          top: t.top - r.top + o,
          left: t.left - r.left + E
        },
        "using"in t ? t.using.call(e, n) : i.css(n)
      }
    },
    p.fn.extend({
      position: function() {
        if (!this[0])
          return null;
        var e = this[0]
          , t = this.offsetParent()
          , n = this.offset()
          , i = /^body|html$/i.test(t[0].nodeName) ? {
          top: 0,
          left: 0
        } : t.offset();
        return n.top -= parseFloat(p.curCSS(e, "marginTop", !0)) || 0,
        n.left -= parseFloat(p.curCSS(e, "marginLeft", !0)) || 0,
        i.top += parseFloat(p.curCSS(t[0], "borderTopWidth", !0)) || 0,
        i.left += parseFloat(p.curCSS(t[0], "borderLeftWidth", !0)) || 0,
        {
          top: n.top - i.top,
          left: n.left - i.left
        }
      },
      offsetParent: function() {
        return this.map(function() {
          for (var e = this.offsetParent || v.body; e && !/^body|html$/i.test(e.nodeName) && "static" === p.css(e, "position"); )
            e = e.offsetParent;
          return e
        })
      }
    }),
    p.each(["Left", "Top"], function(e, n) {
      var i = "scroll" + n;
      p.fn[i] = function(n) {
        var r, o = this[0];
        return o ? n !== t ? this.each(function() {
          (r = F(this)) ? r.scrollTo(e ? p(r).scrollLeft() : n, e ? n : p(r).scrollTop()) : this[i] = n
        }) : (r = F(o)) ? "pageXOffset"in r ? r[e ? "pageYOffset" : "pageXOffset"] : p.support.boxModel && r.document.documentElement[i] || r.document.body[i] : o[i] : null
      }
    }),
    p.each(["Height", "Width"], function(e, n) {
      var i = n.toLowerCase();
      p.fn["inner" + n] = function() {
        return this[0] ? p.css(this[0], i, !1, "padding") : null
      }
      ,
      p.fn["outer" + n] = function(e) {
        return this[0] ? p.css(this[0], i, !1, e ? "margin" : "border") : null
      }
      ,
      p.fn[i] = function(e) {
        var r = this[0];
        return r ? p.isFunction(e) ? this.each(function(t) {
          var n = p(this);
          n[i](e.call(this, t, n[i]()))
        }) : "scrollTo"in r && r.document ? "CSS1Compat" === r.document.compatMode && r.document.documentElement["client" + n] || r.document.body["client" + n] : 9 === r.nodeType ? Math.max(r.documentElement["client" + n], r.body["scroll" + n], r.documentElement["scroll" + n], r.body["offset" + n], r.documentElement["offset" + n]) : e === t ? p.css(r, i) : this.css(i, "string" == typeof e ? e : e + "px") : null == e ? null : this
      }
    }),
    e.xl_jq = e.$ = p
  }(window),
  window.j_xunlei_q = window.xl_jq.noConflict()
}
, function(e, t) {
  var n;
  !function() {
    function e(e) {
      this.mode = i.MODE_8BIT_BYTE,
      this.data = e,
      this.parsedData = [];
      for (var t = 0, n = this.data.length; t < n; t++) {
        var r = []
          , o = this.data.charCodeAt(t);
        o > 65536 ? (r[0] = 240 | (1835008 & o) >>> 18,
        r[1] = 128 | (258048 & o) >>> 12,
        r[2] = 128 | (4032 & o) >>> 6,
        r[3] = 128 | 63 & o) : o > 2048 ? (r[0] = 224 | (61440 & o) >>> 12,
        r[1] = 128 | (4032 & o) >>> 6,
        r[2] = 128 | 63 & o) : o > 128 ? (r[0] = 192 | (1984 & o) >>> 6,
        r[1] = 128 | 63 & o) : r[0] = o,
        this.parsedData.push(r)
      }
      this.parsedData = Array.prototype.concat.apply([], this.parsedData),
      this.parsedData.length != this.data.length && (this.parsedData.unshift(191),
      this.parsedData.unshift(187),
      this.parsedData.unshift(239))
    }
    function t(e, t) {
      this.typeNumber = e,
      this.errorCorrectLevel = t,
      this.modules = null,
      this.moduleCount = 0,
      this.dataCache = null,
      this.dataList = []
    }
    e.prototype = {
      getLength: function(e) {
        return this.parsedData.length
      },
      write: function(e) {
        for (var t = 0, n = this.parsedData.length; t < n; t++)
          e.put(this.parsedData[t], 8)
      }
    },
    t.prototype = {
      addData: function(t) {
        var n = new e(t);
        this.dataList.push(n),
        this.dataCache = null
      },
      isDark: function(e, t) {
        if (e < 0 || this.moduleCount <= e || t < 0 || this.moduleCount <= t)
          throw new Error(e + "," + t);
        return this.modules[e][t]
      },
      getModuleCount: function() {
        return this.moduleCount
      },
      make: function() {
        this.makeImpl(!1, this.getBestMaskPattern())
      },
      makeImpl: function(e, n) {
        this.moduleCount = 4 * this.typeNumber + 17,
        this.modules = new Array(this.moduleCount);
        for (var i = 0; i < this.moduleCount; i++) {
          this.modules[i] = new Array(this.moduleCount);
          for (var r = 0; r < this.moduleCount; r++)
            this.modules[i][r] = null
        }
        this.setupPositionProbePattern(0, 0),
        this.setupPositionProbePattern(this.moduleCount - 7, 0),
        this.setupPositionProbePattern(0, this.moduleCount - 7),
        this.setupPositionAdjustPattern(),
        this.setupTimingPattern(),
        this.setupTypeInfo(e, n),
        this.typeNumber >= 7 && this.setupTypeNumber(e),
        null == this.dataCache && (this.dataCache = t.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)),
        this.mapData(this.dataCache, n)
      },
      setupPositionProbePattern: function(e, t) {
        for (var n = -1; n <= 7; n++)
          if (!(e + n <= -1 || this.moduleCount <= e + n))
            for (var i = -1; i <= 7; i++)
              t + i <= -1 || this.moduleCount <= t + i || (this.modules[e + n][t + i] = 0 <= n && n <= 6 && (0 == i || 6 == i) || 0 <= i && i <= 6 && (0 == n || 6 == n) || 2 <= n && n <= 4 && 2 <= i && i <= 4)
      },
      getBestMaskPattern: function() {
        for (var e = 0, t = 0, n = 0; n < 8; n++) {
          this.makeImpl(!0, n);
          var i = A.getLostPoint(this);
          (0 == n || e > i) && (e = i,
          t = n)
        }
        return t
      },
      createMovieClip: function(e, t, n) {
        var i = e.createEmptyMovieClip(t, n);
        this.make();
        for (var r = 0; r < this.modules.length; r++)
          for (var o = 1 * r, E = 0; E < this.modules[r].length; E++) {
            var a = 1 * E;
            this.modules[r][E] && (i.beginFill(0, 100),
            i.moveTo(a, o),
            i.lineTo(a + 1, o),
            i.lineTo(a + 1, o + 1),
            i.lineTo(a, o + 1),
            i.endFill())
          }
        return i
      },
      setupTimingPattern: function() {
        for (var e = 8; e < this.moduleCount - 8; e++)
          null == this.modules[e][6] && (this.modules[e][6] = e % 2 == 0);
        for (var t = 8; t < this.moduleCount - 8; t++)
          null == this.modules[6][t] && (this.modules[6][t] = t % 2 == 0)
      },
      setupPositionAdjustPattern: function() {
        for (var e = A.getPatternPosition(this.typeNumber), t = 0; t < e.length; t++)
          for (var n = 0; n < e.length; n++) {
            var i = e[t]
              , r = e[n];
            if (null == this.modules[i][r])
              for (var o = -2; o <= 2; o++)
                for (var E = -2; E <= 2; E++)
                  this.modules[i + o][r + E] = -2 == o || 2 == o || -2 == E || 2 == E || 0 == o && 0 == E
          }
      },
      setupTypeNumber: function(e) {
        for (var t = A.getBCHTypeNumber(this.typeNumber), n = 0; n < 18; n++) {
          var i = !e && 1 == (t >> n & 1);
          this.modules[Math.floor(n / 3)][n % 3 + this.moduleCount - 8 - 3] = i
        }
        for (n = 0; n < 18; n++) {
          i = !e && 1 == (t >> n & 1);
          this.modules[n % 3 + this.moduleCount - 8 - 3][Math.floor(n / 3)] = i
        }
      },
      setupTypeInfo: function(e, t) {
        for (var n = this.errorCorrectLevel << 3 | t, i = A.getBCHTypeInfo(n), r = 0; r < 15; r++) {
          var o = !e && 1 == (i >> r & 1);
          r < 6 ? this.modules[r][8] = o : r < 8 ? this.modules[r + 1][8] = o : this.modules[this.moduleCount - 15 + r][8] = o
        }
        for (r = 0; r < 15; r++) {
          o = !e && 1 == (i >> r & 1);
          r < 8 ? this.modules[8][this.moduleCount - r - 1] = o : r < 9 ? this.modules[8][15 - r - 1 + 1] = o : this.modules[8][15 - r - 1] = o
        }
        this.modules[this.moduleCount - 8][8] = !e
      },
      mapData: function(e, t) {
        for (var n = -1, i = this.moduleCount - 1, r = 7, o = 0, E = this.moduleCount - 1; E > 0; E -= 2)
          for (6 == E && E--; ; ) {
            for (var a = 0; a < 2; a++)
              if (null == this.modules[i][E - a]) {
                var C = !1;
                o < e.length && (C = 1 == (e[o] >>> r & 1)),
                A.getMask(t, i, E - a) && (C = !C),
                this.modules[i][E - a] = C,
                -1 == --r && (o++,
                r = 7)
              }
            if ((i += n) < 0 || this.moduleCount <= i) {
              i -= n,
              n = -n;
              break
            }
          }
      }
    },
    t.PAD0 = 236,
    t.PAD1 = 17,
    t.createData = function(e, n, i) {
      for (var r = d.getRSBlocks(e, n), o = new h, E = 0; E < i.length; E++) {
        var a = i[E];
        o.put(a.mode, 4),
        o.put(a.getLength(), A.getLengthInBits(a.mode, e)),
        a.write(o)
      }
      var C = 0;
      for (E = 0; E < r.length; E++)
        C += r[E].dataCount;
      if (o.getLengthInBits() > 8 * C)
        throw new Error("code length overflow. (" + o.getLengthInBits() + ">" + 8 * C + ")");
      for (o.getLengthInBits() + 4 <= 8 * C && o.put(0, 4); o.getLengthInBits() % 8 != 0; )
        o.putBit(!1);
      for (; !(o.getLengthInBits() >= 8 * C || (o.put(t.PAD0, 8),
      o.getLengthInBits() >= 8 * C)); )
        o.put(t.PAD1, 8);
      return t.createBytes(o, r)
    }
    ,
    t.createBytes = function(e, t) {
      for (var n = 0, i = 0, r = 0, o = new Array(t.length), E = new Array(t.length), a = 0; a < t.length; a++) {
        var C = t[a].dataCount
          , s = t[a].totalCount - C;
        i = Math.max(i, C),
        r = Math.max(r, s),
        o[a] = new Array(C);
        for (var B = 0; B < o[a].length; B++)
          o[a][B] = 255 & e.buffer[B + n];
        n += C;
        var D = A.getErrorCorrectPolynomial(s)
          , u = new F(o[a],D.getLength() - 1).mod(D);
        E[a] = new Array(D.getLength() - 1);
        for (B = 0; B < E[a].length; B++) {
          var l = B + u.getLength() - E[a].length;
          E[a][B] = l >= 0 ? u.get(l) : 0
        }
      }
      var c = 0;
      for (B = 0; B < t.length; B++)
        c += t[B].totalCount;
      var d = new Array(c)
        , h = 0;
      for (B = 0; B < i; B++)
        for (a = 0; a < t.length; a++)
          B < o[a].length && (d[h++] = o[a][B]);
      for (B = 0; B < r; B++)
        for (a = 0; a < t.length; a++)
          B < E[a].length && (d[h++] = E[a][B]);
      return d
    }
    ;
    for (var i = {
      MODE_NUMBER: 1,
      MODE_ALPHA_NUM: 2,
      MODE_8BIT_BYTE: 4,
      MODE_KANJI: 8
    }, r = {
      L: 1,
      M: 0,
      Q: 3,
      H: 2
    }, o = 0, E = 1, a = 2, C = 3, s = 4, B = 5, D = 6, u = 7, A = {
      PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
      G15: 1335,
      G18: 7973,
      G15_MASK: 21522,
      getBCHTypeInfo: function(e) {
        for (var t = e << 10; A.getBCHDigit(t) - A.getBCHDigit(A.G15) >= 0; )
          t ^= A.G15 << A.getBCHDigit(t) - A.getBCHDigit(A.G15);
        return (e << 10 | t) ^ A.G15_MASK
      },
      getBCHTypeNumber: function(e) {
        for (var t = e << 12; A.getBCHDigit(t) - A.getBCHDigit(A.G18) >= 0; )
          t ^= A.G18 << A.getBCHDigit(t) - A.getBCHDigit(A.G18);
        return e << 12 | t
      },
      getBCHDigit: function(e) {
        for (var t = 0; 0 != e; )
          t++,
          e >>>= 1;
        return t
      },
      getPatternPosition: function(e) {
        return A.PATTERN_POSITION_TABLE[e - 1]
      },
      getMask: function(e, t, n) {
        switch (e) {
        case o:
          return (t + n) % 2 == 0;
        case E:
          return t % 2 == 0;
        case a:
          return n % 3 == 0;
        case C:
          return (t + n) % 3 == 0;
        case s:
          return (Math.floor(t / 2) + Math.floor(n / 3)) % 2 == 0;
        case B:
          return t * n % 2 + t * n % 3 == 0;
        case D:
          return (t * n % 2 + t * n % 3) % 2 == 0;
        case u:
          return (t * n % 3 + (t + n) % 2) % 2 == 0;
        default:
          throw new Error("bad maskPattern:" + e)
        }
      },
      getErrorCorrectPolynomial: function(e) {
        for (var t = new F([1],0), n = 0; n < e; n++)
          t = t.multiply(new F([1, l.gexp(n)],0));
        return t
      },
      getLengthInBits: function(e, t) {
        if (1 <= t && t < 10)
          switch (e) {
          case i.MODE_NUMBER:
            return 10;
          case i.MODE_ALPHA_NUM:
            return 9;
          case i.MODE_8BIT_BYTE:
          case i.MODE_KANJI:
            return 8;
          default:
            throw new Error("mode:" + e)
          }
        else if (t < 27)
          switch (e) {
          case i.MODE_NUMBER:
            return 12;
          case i.MODE_ALPHA_NUM:
            return 11;
          case i.MODE_8BIT_BYTE:
            return 16;
          case i.MODE_KANJI:
            return 10;
          default:
            throw new Error("mode:" + e)
          }
        else {
          if (!(t < 41))
            throw new Error("type:" + t);
          switch (e) {
          case i.MODE_NUMBER:
            return 14;
          case i.MODE_ALPHA_NUM:
            return 13;
          case i.MODE_8BIT_BYTE:
            return 16;
          case i.MODE_KANJI:
            return 12;
          default:
            throw new Error("mode:" + e)
          }
        }
      },
      getLostPoint: function(e) {
        for (var t = e.getModuleCount(), n = 0, i = 0; i < t; i++)
          for (var r = 0; r < t; r++) {
            for (var o = 0, E = e.isDark(i, r), a = -1; a <= 1; a++)
              if (!(i + a < 0 || t <= i + a))
                for (var C = -1; C <= 1; C++)
                  r + C < 0 || t <= r + C || 0 == a && 0 == C || E == e.isDark(i + a, r + C) && o++;
            o > 5 && (n += 3 + o - 5)
          }
        for (i = 0; i < t - 1; i++)
          for (r = 0; r < t - 1; r++) {
            var s = 0;
            e.isDark(i, r) && s++,
            e.isDark(i + 1, r) && s++,
            e.isDark(i, r + 1) && s++,
            e.isDark(i + 1, r + 1) && s++,
            0 != s && 4 != s || (n += 3)
          }
        for (i = 0; i < t; i++)
          for (r = 0; r < t - 6; r++)
            e.isDark(i, r) && !e.isDark(i, r + 1) && e.isDark(i, r + 2) && e.isDark(i, r + 3) && e.isDark(i, r + 4) && !e.isDark(i, r + 5) && e.isDark(i, r + 6) && (n += 40);
        for (r = 0; r < t; r++)
          for (i = 0; i < t - 6; i++)
            e.isDark(i, r) && !e.isDark(i + 1, r) && e.isDark(i + 2, r) && e.isDark(i + 3, r) && e.isDark(i + 4, r) && !e.isDark(i + 5, r) && e.isDark(i + 6, r) && (n += 40);
        var B = 0;
        for (r = 0; r < t; r++)
          for (i = 0; i < t; i++)
            e.isDark(i, r) && B++;
        return n += 10 * (Math.abs(100 * B / t / t - 50) / 5)
      }
    }, l = {
      glog: function(e) {
        if (e < 1)
          throw new Error("glog(" + e + ")");
        return l.LOG_TABLE[e]
      },
      gexp: function(e) {
        for (; e < 0; )
          e += 255;
        for (; e >= 256; )
          e -= 255;
        return l.EXP_TABLE[e]
      },
      EXP_TABLE: new Array(256),
      LOG_TABLE: new Array(256)
    }, c = 0; c < 8; c++)
      l.EXP_TABLE[c] = 1 << c;
    for (c = 8; c < 256; c++)
      l.EXP_TABLE[c] = l.EXP_TABLE[c - 4] ^ l.EXP_TABLE[c - 5] ^ l.EXP_TABLE[c - 6] ^ l.EXP_TABLE[c - 8];
    for (c = 0; c < 255; c++)
      l.LOG_TABLE[l.EXP_TABLE[c]] = c;
    function F(e, t) {
      if (null == e.length)
        throw new Error(e.length + "/" + t);
      for (var n = 0; n < e.length && 0 == e[n]; )
        n++;
      this.num = new Array(e.length - n + t);
      for (var i = 0; i < e.length - n; i++)
        this.num[i] = e[i + n]
    }
    function d(e, t) {
      this.totalCount = e,
      this.dataCount = t
    }
    function h() {
      this.buffer = [],
      this.length = 0
    }
    F.prototype = {
      get: function(e) {
        return this.num[e]
      },
      getLength: function() {
        return this.num.length
      },
      multiply: function(e) {
        for (var t = new Array(this.getLength() + e.getLength() - 1), n = 0; n < this.getLength(); n++)
          for (var i = 0; i < e.getLength(); i++)
            t[n + i] ^= l.gexp(l.glog(this.get(n)) + l.glog(e.get(i)));
        return new F(t,0)
      },
      mod: function(e) {
        if (this.getLength() - e.getLength() < 0)
          return this;
        for (var t = l.glog(this.get(0)) - l.glog(e.get(0)), n = new Array(this.getLength()), i = 0; i < this.getLength(); i++)
          n[i] = this.get(i);
        for (i = 0; i < e.getLength(); i++)
          n[i] ^= l.gexp(l.glog(e.get(i)) + t);
        return new F(n,0).mod(e)
      }
    },
    d.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]],
    d.getRSBlocks = function(e, t) {
      var n = d.getRsBlockTable(e, t);
      if (null == n)
        throw new Error("bad rs block @ typeNumber:" + e + "/errorCorrectLevel:" + t);
      for (var i = n.length / 3, r = [], o = 0; o < i; o++)
        for (var E = n[3 * o + 0], a = n[3 * o + 1], C = n[3 * o + 2], s = 0; s < E; s++)
          r.push(new d(a,C));
      return r
    }
    ,
    d.getRsBlockTable = function(e, t) {
      switch (t) {
      case r.L:
        return d.RS_BLOCK_TABLE[4 * (e - 1) + 0];
      case r.M:
        return d.RS_BLOCK_TABLE[4 * (e - 1) + 1];
      case r.Q:
        return d.RS_BLOCK_TABLE[4 * (e - 1) + 2];
      case r.H:
        return d.RS_BLOCK_TABLE[4 * (e - 1) + 3];
      default:
        return
      }
    }
    ,
    h.prototype = {
      get: function(e) {
        var t = Math.floor(e / 8);
        return 1 == (this.buffer[t] >>> 7 - e % 8 & 1)
      },
      put: function(e, t) {
        for (var n = 0; n < t; n++)
          this.putBit(1 == (e >>> t - n - 1 & 1))
      },
      getLengthInBits: function() {
        return this.length
      },
      putBit: function(e) {
        var t = Math.floor(this.length / 8);
        this.buffer.length <= t && this.buffer.push(0),
        e && (this.buffer[t] |= 128 >>> this.length % 8),
        this.length++
      }
    };
    var p = [[17, 14, 11, 7], [32, 26, 20, 14], [53, 42, 32, 24], [78, 62, 46, 34], [106, 84, 60, 44], [134, 106, 74, 58], [154, 122, 86, 64], [192, 152, 108, 84], [230, 180, 130, 98], [271, 213, 151, 119], [321, 251, 177, 137], [367, 287, 203, 155], [425, 331, 241, 177], [458, 362, 258, 194], [520, 412, 292, 220], [586, 450, 322, 250], [644, 504, 364, 280], [718, 560, 394, 310], [792, 624, 442, 338], [858, 666, 482, 382], [929, 711, 509, 403], [1003, 779, 565, 439], [1091, 857, 611, 461], [1171, 911, 661, 511], [1273, 997, 715, 535], [1367, 1059, 751, 593], [1465, 1125, 805, 625], [1528, 1190, 868, 658], [1628, 1264, 908, 698], [1732, 1370, 982, 742], [1840, 1452, 1030, 790], [1952, 1538, 1112, 842], [2068, 1628, 1168, 898], [2188, 1722, 1228, 958], [2303, 1809, 1283, 983], [2431, 1911, 1351, 1051], [2563, 1989, 1423, 1093], [2699, 2099, 1499, 1139], [2809, 2213, 1579, 1219], [2953, 2331, 1663, 1273]];
    function f() {
      var e = !1
        , t = navigator.userAgent;
      if (/android/i.test(t)) {
        e = !0;
        var n = t.toString().match(/android ([0-9]\.[0-9])/i);
        n && n[1] && (e = parseFloat(n[1]))
      }
      return e
    }
    var m = function() {
      var e = function(e, t) {
        this._el = e,
        this._htOption = t
      };
      return e.prototype.draw = function(e) {
        var t = this._htOption
          , n = this._el
          , i = e.getModuleCount();
        Math.floor(t.width / i),
        Math.floor(t.height / i);
        function r(e, t) {
          var n = document.createElementNS("http://www.w3.org/2000/svg", e);
          for (var i in t)
            t.hasOwnProperty(i) && n.setAttribute(i, t[i]);
          return n
        }
        this.clear();
        var o = r("svg", {
          viewBox: "0 0 " + String(i) + " " + String(i),
          width: "100%",
          height: "100%",
          fill: t.colorLight
        });
        o.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink"),
        n.appendChild(o),
        o.appendChild(r("rect", {
          fill: t.colorLight,
          width: "100%",
          height: "100%"
        })),
        o.appendChild(r("rect", {
          fill: t.colorDark,
          width: "1",
          height: "1",
          id: "template"
        }));
        for (var E = 0; E < i; E++)
          for (var a = 0; a < i; a++)
            if (e.isDark(E, a)) {
              var C = r("use", {
                x: String(a),
                y: String(E)
              });
              C.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#template"),
              o.appendChild(C)
            }
      }
      ,
      e.prototype.clear = function() {
        for (; this._el.hasChildNodes(); )
          this._el.removeChild(this._el.lastChild)
      }
      ,
      e
    }()
      , v = "svg" === document.documentElement.tagName.toLowerCase() ? m : "undefined" == typeof CanvasRenderingContext2D ? function() {
      var e = function(e, t) {
        this._el = e,
        this._htOption = t
      };
      return e.prototype.draw = function(e) {
        for (var t = this._htOption, n = this._el, i = e.getModuleCount(), r = Math.floor(t.width / i), o = Math.floor(t.height / i), E = ['<table style="border:0;border-collapse:collapse;">'], a = 0; a < i; a++) {
          E.push("<tr>");
          for (var C = 0; C < i; C++)
            E.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:' + r + "px;height:" + o + "px;background-color:" + (e.isDark(a, C) ? t.colorDark : t.colorLight) + ';"></td>');
          E.push("</tr>")
        }
        E.push("</table>"),
        n.innerHTML = E.join("");
        var s = n.childNodes[0]
          , B = (t.width - s.offsetWidth) / 2
          , D = (t.height - s.offsetHeight) / 2;
        B > 0 && D > 0 && (s.style.margin = D + "px " + B + "px")
      }
      ,
      e.prototype.clear = function() {
        this._el.innerHTML = ""
      }
      ,
      e
    }() : function() {
      function e() {
        this._elImage.src = this._elCanvas.toDataURL("image/png"),
        this._elImage.style.display = "block",
        this._elCanvas.style.display = "none"
      }
      if (this._android && this._android <= 2.1) {
        var t = 1 / window.devicePixelRatio
          , n = CanvasRenderingContext2D.prototype.drawImage;
        CanvasRenderingContext2D.prototype.drawImage = function(e, i, r, o, E, a, C, s, B) {
          if ("nodeName"in e && /img/i.test(e.nodeName))
            for (var D = arguments.length - 1; D >= 1; D--)
              arguments[D] = arguments[D] * t;
          else
            void 0 === s && (arguments[1] *= t,
            arguments[2] *= t,
            arguments[3] *= t,
            arguments[4] *= t);
          n.apply(this, arguments)
        }
      }
      function i(e, t) {
        var n = this;
        if (n._fFail = t,
        n._fSuccess = e,
        null === n._bSupportDataURI) {
          var i = document.createElement("img")
            , r = function() {
            n._bSupportDataURI = !1,
            n._fFail && n._fFail.call(n)
          };
          return i.onabort = r,
          i.onerror = r,
          i.onload = function() {
            n._bSupportDataURI = !0,
            n._fSuccess && n._fSuccess.call(n)
          }
          ,
          void (i.src = "")
        }
        !0 === n._bSupportDataURI && n._fSuccess ? n._fSuccess.call(n) : !1 === n._bSupportDataURI && n._fFail && n._fFail.call(n)
      }
      var r = function(e, t) {
        this._bIsPainted = !1,
        this._android = f(),
        this._htOption = t,
        this._elCanvas = document.createElement("canvas"),
        this._elCanvas.width = t.width,
        this._elCanvas.height = t.height,
        e.appendChild(this._elCanvas),
        this._el = e,
        this._oContext = this._elCanvas.getContext("2d"),
        this._bIsPainted = !1,
        this._elImage = document.createElement("img"),
        this._elImage.alt = "Scan me!",
        this._elImage.style.display = "none",
        this._el.appendChild(this._elImage),
        this._bSupportDataURI = null
      };
      return r.prototype.draw = function(e) {
        var t = this._elImage
          , n = this._oContext
          , i = this._htOption
          , r = e.getModuleCount()
          , o = i.width / r
          , E = i.height / r
          , a = Math.round(o)
          , C = Math.round(E);
        t.style.display = "none",
        this.clear();
        for (var s = 0; s < r; s++)
          for (var B = 0; B < r; B++) {
            var D = e.isDark(s, B)
              , u = B * o
              , A = s * E;
            n.strokeStyle = D ? i.colorDark : i.colorLight,
            n.lineWidth = 1,
            n.fillStyle = D ? i.colorDark : i.colorLight,
            n.fillRect(u, A, o, E),
            n.strokeRect(Math.floor(u) + .5, Math.floor(A) + .5, a, C),
            n.strokeRect(Math.ceil(u) - .5, Math.ceil(A) - .5, a, C)
          }
        this._bIsPainted = !0
      }
      ,
      r.prototype.makeImage = function() {
        this._bIsPainted && i.call(this, e)
      }
      ,
      r.prototype.isPainted = function() {
        return this._bIsPainted
      }
      ,
      r.prototype.clear = function() {
        this._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height),
        this._bIsPainted = !1
      }
      ,
      r.prototype.round = function(e) {
        return e ? Math.floor(1e3 * e) / 1e3 : e
      }
      ,
      r
    }();
    function g(e, t) {
      for (var n = 1, i = function(e) {
        var t = encodeURI(e).toString().replace(/\%[0-9a-fA-F]{2}/g, "a");
        return t.length + (t.length != e ? 3 : 0)
      }(e), o = 0, E = p.length; o <= E; o++) {
        var a = 0;
        switch (t) {
        case r.L:
          a = p[o][0];
          break;
        case r.M:
          a = p[o][1];
          break;
        case r.Q:
          a = p[o][2];
          break;
        case r.H:
          a = p[o][3]
        }
        if (i <= a)
          break;
        n++
      }
      if (n > p.length)
        throw new Error("Too long data");
      return n
    }
    window.QRCode = n = function(e, t) {
      if (this._htOption = {
        width: 256,
        height: 256,
        typeNumber: 4,
        colorDark: "#000000",
        colorLight: "#ffffff",
        correctLevel: r.H
      },
      "string" == typeof t && (t = {
        text: t
      }),
      t)
        for (var n in t)
          this._htOption[n] = t[n];
      "string" == typeof e && (e = document.getElementById(e)),
      this._htOption.useSVG && (v = m),
      this._android = f(),
      this._el = e,
      this._oQRCode = null,
      this._oDrawing = new v(this._el,this._htOption),
      this._htOption.text && this.makeCode(this._htOption.text)
    }
    ,
    n.prototype.makeCode = function(e) {
      this._oQRCode = new t(g(e, this._htOption.correctLevel),this._htOption.correctLevel),
      this._oQRCode.addData(e),
      this._oQRCode.make(),
      this._el.title = e,
      this._oDrawing.draw(this._oQRCode),
      this.makeImage()
    }
    ,
    n.prototype.makeImage = function() {
      "function" == typeof this._oDrawing.makeImage && (!this._android || this._android >= 3) && this._oDrawing.makeImage()
    }
    ,
    n.prototype.clear = function() {
      this._oDrawing.clear()
    }
    ,
    n.CorrectLevel = r
  }()
}
, function(e, t, n) {
  n(3).ports;
  var i = n(3).downloadWithXlwfp
    , r = n(3).iPhoneDownload
    , o = n(3).getXlVersion
    , E = n(14)
    , a = n(15)
    , C = n(1).mustBeSelectedThunder
    , s = (n(1).schemeUrl,
  n(1).selectThunderType)
    , B = n(1).thunderHrefAttr
    , D = n(8)
    , u = n(0)
    , A = (n(0).compileOpts,
  n(0).getDocBodyObj)
    , l = n(0).getUserBrowser
    , c = n(0).getUserOSType
    , F = n(0).gteWin7
    , d = n(0).incaseBodyNull
    , h = (n(0).loadCss,
  n(0).removeFdiv)
    , p = n(0).wtdChangFolder
    , f = n(6).decode64
    , m = n(4).Dialog
    , v = (n(7),
  n(10))
    , g = n(5)
    , _ = n(0).versionCompare;
  j_xunlei_q(document).ready(function() {
    g.reportSend("page_show")
  });
  var y = !1
    , b = 0
    , w = "thunder_union_stat_xx_ss"
    , x = "IE" == l()
    , k = function(e) {
    return void 0 === e
  };
  function T() {
    return T.seed = (9301 * T.seed + 49297) % 233280,
    T.seed / 233280
  }
  function j(e, t, n) {
    window.document.cookie = e + "=" + escape(t) + (null == n ? "" : "; expires=" + n.toGMTString())
  }
  function I(e) {
    var t = e + "=";
    if (window.document.cookie.length > 0) {
      var n = window.document.cookie.indexOf(t);
      if (-1 != n) {
        n += t.length;
        var i = window.document.cookie.indexOf(";", n);
        return -1 == i && (i = window.document.cookie.length),
        unescape(window.document.cookie.substring(n, i))
      }
    }
    return null
  }
  function S(e) {
    return e = (e = (e = (e = (e = (e = e.replace(/&lt/g, "<")).replace(/&gt/g, ">")).replace(/&amp/g, "&")).replace(/&quot/g, '"')).replace(/&apos/g, "'")).replace(/<br>/g, "\n")
  }
  function N(e, t, n, i, o, C, B) {
    var D = l()
      , u = c();
    if (b = 0,
    "iPhone" == u || "iPad" == u || "iPod" == u)
      r(e);
    else if ("MacBrowser" == D)
      a.productMacShow(e, i, !1, e);
    else if ("Android" == D)
      E.productAndroidShow(e, i);
    else {
      X(),
      V(1, i),
      i = i || "",
      "07" == C && (i = "g" + i),
      "",
      y = !0,
      ne.infoType = 10,
      ne.pId = i || "";
      try {
        B = "coWebThunder" == s ? 3 : "coThunder5" == s ? 4 : 5
      } catch (e) {
        B && !isNaN(B) && (B = Number(B))
      }
      if (3 != B && 4 != B || (ne.thunderType = B),
      "boolean" != typeof o && 2 != (o = isNaN(o) ? void 0 : Number(o)) && 10 != o && (o = void 0),
      1 != o && 10 != o || null == o ? 0 != o && 2 != o || null == o || (ne.isOpenNew = !1) : ne.isOpenNew = !0,
      x)
        return v.load_pc_xunlei_success(e),
        ne.download(e, n, "", "");
      re(e, i)
    }
    return !1
  }
  T.today = new Date,
  T.seed = T.today.getTime();
  var M = function(e, t) {
    var n = l();
    "Firefox" == n || "Chrome" == n || "SB360" == n ? re(e, t) : "unknown" == n ? alert(unescape("\u62b1\u6b49\uff0c\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u8fc5\u96f7\u4e13\u7528\u94fe\u4e0b\u8f7d\uff0c\u8bf7\u66f4\u6362\u522b\u7684\u6d4f\u89c8\u5668\u5982IE9\u518d\u8bd5")) : N(e, 0, location.href, t, !1, "")
  };
  function P(e, t, n, C) {
    1;
    var s = ""
      , D = l()
      , A = c();
    "" == s && (null != (s = e.getAttribute(B)) && "" != s || (s = e.getAttribute("thunderHref")));
    location.href;
    var d = e.getAttribute("thunderPid");
    e.getAttribute("thunderType"),
    e.getAttribute("CompanyName");
    window.G_thunder_pid = d;
    A = c();
    if (m.init(d),
    "iPhone" == A || "iPad" == A || "iPod" == A) {
      var h = e.href;
      r(s, h, h)
    } else if ("MacBrowser" == D)
      a.productMacShow(s, d, !1, s);
    else if ("Android" == D)
      E.productAndroidShow(s, d);
    else {
      if (!F())
        return M(s, d),
        !1;
      u.getIEVersion();
      o(d, function(e) {
        e && _(e, "9.0.0.0") >= 0 ? (v.load_pc_xunlei_success(s),
        i({
          thunderPid: d,
          url: s
        }, function() {
          M(s, d)
        })) : (delete m.thunderInstallPack,
        m.copyText(s),
        m.fn = oe(s).split("?")[0].split("/").pop(),
        m.popup("not_install_on_win", s, !1, !1))
      })
    }
    return !1
  }
  var O, R = "#ba2020", L = "#5bb956", G = "", U = navigator.appVersion.indexOf("MSIE 6") > -1;
  function Y(e, t, n, i, r) {
    var o = function() {
      var e;
      try {
        if (navigator.userAgent.indexOf("MSIE") > 0)
          e = new ActiveXObject("ThunderAgent.Agent.1");
        else {
          if (!navigator.mimeTypes["application/x-thunder-XBrowserAgent"])
            return "";
          var t = document.createElement("object");
          t.setAttribute("id", "pluginobj"),
          t.setAttribute("type", "application/x-thunder-XBrowserAgent"),
          t.setAttribute("name", "Plugin FAILED to load"),
          d(),
          document.body.appendChild(t),
          e = t
        }
        return e.GetInfo("PeerID")
      } catch (e) {
        return ""
      }
    }()
      , E = '{"f":"' + t + '","b":"webpage"';
    "" != o && (E += ',"p":"' + o + '"');
    var a = {
      fileurl: e,
      z: E += "}",
      pageurl: n
    }
      , C = !1
      , s = j_xunlei_q.ajax({
      url: "http://u.155.com/download/create?",
      data: a,
      dataType: "jsonp",
      timeout: 1e4,
      success: function(r) {
        if ("-1" == C)
          return !1;
        C = !0,
        i(r, e, t, n),
        0 == r.status && function(e) {
          j_xunlei_q.ajax({
            url: "http://status.u.155.com/download/query",
            data: {
              checkcode: e.checkcode
            },
            dataType: "jsonp",
            timeout: 6e4,
            success: function(e) {
              if (0 == e.status) {
                var t = 10;
                j_xunlei_q(".thunder_m_tip .thunder_m_foot").fadeIn("normal"),
                j_xunlei_q(".thunder_m_tip .thunder_m_already span").html("\u8fc5\u96f7\u5df2\u5efa\u7acb\u4efb\u52a1\uff0c\u4e0b\u8f7d\u9875\u5728" + t + "\u79d2\u540e\u5173\u95ed"),
                j_xunlei_q(".thunder_m_tip .thunder_m_already").fadeIn("normal"),
                t--,
                O = setInterval(function() {
                  if (t <= 0)
                    return O = clearInterval(O),
                    q(),
                    J(9),
                    !1;
                  j_xunlei_q(".thunder_m_tip .thunder_m_already span").html("\u8fc5\u96f7\u5df2\u5efa\u7acb\u4efb\u52a1\uff0c\u4e0b\u8f7d\u9875\u5728" + t + "\u79d2\u540e\u5173\u95ed"),
                  t--
                }, 1e3),
                J(4)
              }
            },
            error: function() {}
          })
        }(r)
      },
      error: function(i, o, E) {
        r(e, t, n)
      }
    });
    setTimeout(function() {
      if (!C) {
        C = -1;
        try {
          s.abort(),
          r(e, t, n)
        } catch (i) {
          r(e, t, n)
        }
      }
    }, 1e4)
  }
  function Q(e, t, n, i) {
    if (0 == e.status) {
      var r = new Image
        , o = e.url;
      r.src = "http://u.155.com/qr?data=" + encodeURIComponent(o),
      r.onload = function() {
        j_xunlei_q("#thunder_rpcode_img").attr("src", r.src),
        j_xunlei_q("#thunder_rpcode_loading").hide(),
        j_xunlei_q("#thunder_rpcode_img").parent().show()
      }
      ,
      r.onerror = function() {
        H(t, n, i)
      }
      ,
      j_xunlei_q("#thunder_m_short_url").val(e.url),
      j_xunlei_q("#thunder_m_client_checkcode").val(e.checkcode)
    } else
      H(t, n, i)
  }
  function W(e, t, n) {
    H(e, t, n)
  }
  function H(e, t, n) {
    j_xunlei_q("#thunder_load_code_fail").show(),
    j_xunlei_q("#thunder_rpcode_loading").hide(),
    j_xunlei_q("#thunder_rpcode_img").parent().hide(),
    j_xunlei_q("#thunder_reload_rpcode_img").unbind("click").click(function() {
      j_xunlei_q("#thunder_load_code_fail").hide(),
      j_xunlei_q("#thunder_rpcode_loading").show(),
      Y(e, t, n, Q, W)
    })
  }
  function Z(e, t) {
    var n = e;
    j_xunlei_q.ajax({
      url: "http://url.xunlei.com/sendsms?",
      data: {
        short_url: n,
        phone: j_xunlei_q("#thunder_m_phone").val(),
        verify_code: j_xunlei_q("#thunder_m_valid").val()
      },
      dataType: "jsonp",
      timeout: 1e4,
      success: function(e) {
        try {
          0 == e.status ? (j_xunlei_q(".thunder_m_tip #thunder_m_note").css("color", L).html("\u77ed\u4fe1\u5df2\u53d1\u9001\uff0c\u53ef\u80fd\u67093-5\u5206\u949f\u5ef6\u8fdf").show(),
          j_xunlei_q("#thunder_m_phone").removeClass("thunder_m_on1").val("\u8f93\u5165\u624b\u673a\u53f7\uff0c\u514d\u8d39\u4e0b\u8f7d"),
          J(5)) : (j_xunlei_q("#thunder_m_send_sms").addClass("thunder_m_on"),
          j_xunlei_q("#thunder_m_send_sms").removeAttr("disabled"),
          j_xunlei_q(".thunder_m_tip #thunder_m_note").css("color", R).html(e.msg).show()),
          G = setTimeout(function() {
            j_xunlei_q(".thunder_m_tip #thunder_m_note").hide()
          }, 5e3)
        } catch (e) {
          j_xunlei_q("#thunder_m_send_sms").addClass("thunder_m_on"),
          j_xunlei_q("#thunder_m_send_sms").removeAttr("disabled"),
          j_xunlei_q(".thunder_m_tip #thunder_m_note").css("color", R).html("\u670d\u52a1\u5668\u9519\u8bef").show()
        }
        z()
      },
      error: function() {
        j_xunlei_q("#thunder_m_send_sms").addClass("thunder_m_on"),
        j_xunlei_q("#thunder_m_send_sms").removeAttr("disabled"),
        j_xunlei_q(".thunder_m_tip #thunder_m_note").css("color", R).html("\u8bf7\u6c42\u8d85\u65f6\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5").show(),
        z()
      }
    })
  }
  function q() {
    O = clearInterval(O),
    document.getElementById("thunder_m_fdiv") && (navigator.userAgent.indexOf("MSIE") > 0 ? document.getElementById("thunder_m_fdiv").removeNode(!0) : document.getElementById("thunder_m_fdiv").parentNode.removeChild(document.getElementById("thunder_m_fdiv"))),
    document.getElementById("thunder_m_opac") && (navigator.userAgent.indexOf("MSIE") > 0 ? document.getElementById("thunder_m_opac").removeNode(!0) : document.getElementById("thunder_m_opac").parentNode.removeChild(document.getElementById("thunder_m_opac")))
  }
  function z() {
    j_xunlei_q(".thunder_m_tip #thunder_m_valid").val("\u8f93\u5165\u9a8c\u8bc1\u7801"),
    j_xunlei_q(".thunder_m_tip .thunder_m_valid").show(),
    j_xunlei_q("#thunder_m_valid").removeClass("thunder_m_on1");
    var e = new Date;
    j_xunlei_q("#thunder_m_check_code").attr("src", "http://verify2.xunlei.com/image?r=" + e.getTime())
  }
  function J(e) {
    try {
      var t = "http://stat.download.xunlei.com:8080/?aid=1008&id=" + e + "&click=1&_t=" + (new Date).getTime();
      (new Image).src = t
    } catch (e) {}
  }
  function V(e, t) {
    !function(e, t, n) {
      try {
        var i = "http://stat.download.xunlei.com:8080/?aid=" + e + "&id=" + t + "&f=" + n + "&peerid=" + I(w) + "&click=1&_t=" + (new Date).getTime();
        (new Image).src = i
      } catch (e) {}
    }(1030, e, t)
  }
  function X() {
    var e, t = I(w);
    if (null == t) {
      t = "td_pid_" + ((e = function() {
        return (65536 * (1 + Math.random()) | 0).toString(16).substring(1)
      }
      )() + e() + "-" + e() + "-" + e() + "-" + e() + "-" + e() + e() + e());
      var n = new Date;
      n.setTime(n.getTime() + 864e10),
      j(w, t, n)
    }
  }
  function K(e) {
    e.href = "JavaScript:;"
  }
  var $ = function() {
    return function() {
      this.initialize.apply(this, arguments)
    }
  }
    , ee = function(e, t) {
    var n = function() {
      var e = arguments.callee.target
        , t = arguments.callee.func;
      return t.apply(e, arguments)
    };
    return n.target = e,
    n.func = t,
    n
  }
    , te = [];
  te.WebThunderSetUpInfo = unescape("%u6B64%u94FE%u63A5%u4E3A%u8FC5%u96F7%u4E13%u7528%u4E0B%u8F7D%u901A%u9053%uFF0C%u5FC5%u987B%u5B89%u88C5%u8FC5%u96F7%u624D%u80FD%u4E0B%u8F7D%uFF0C%u5B89%u88C5%u540E%u8BF7%u91CD%u65B0%u8FDB%u5165%u6B64%u9875%u8FDB%u884C%u4E0B%u8F7D%u3002%u70B9%u51FB%u786E%u5B9A%u5373%u523B%u5B89%u88C5%u8FC5%u96F77%uFF0C%u4F53%u9A8C%u6781%u901F%u4E0B%u8F7D%u7684%u4E50%u8DA3%uFF01"),
  te.Thunder5SetUpInfo = unescape("%u6B64%u94FE%u63A5%u4E3A%u8FC5%u96F7%u4E13%u7528%u4E0B%u8F7D%u901A%u9053%uFF0C%u5FC5%u987B%u5B89%u88C5%u8FC5%u96F7%u624D%u80FD%u4E0B%u8F7D%uFF0C%u5B89%u88C5%u540E%u8BF7%u91CD%u65B0%u8FDB%u5165%u6B64%u9875%u8FDB%u884C%u4E0B%u8F7D%u3002%u70B9%u51FB%u786E%u5B9A%u5373%u523B%u5B89%u88C5%u8FC5%u96F77%uFF0C%u4F53%u9A8C%u6781%u901F%u4E0B%u8F7D%u7684%u4E50%u8DA3%uFF01"),
  te.Thunder9SetUpInfo = unescape("%u6B64%u94FE%u63A5%u4E3A%u8FC5%u96F7%u4E13%u7528%u4E0B%u8F7D%u901A%u9053%uFF0C%u5FC5%u987B%u5B89%u88C5%u8FC5%u96F7%u624D%u80FD%u4E0B%u8F7D%uFF0C%u5B89%u88C5%u540E%u8BF7%u91CD%u65B0%u8FDB%u5165%u6B64%u9875%u8FDB%u884C%u4E0B%u8F7D%u3002%u70B9%u51FB%u786E%u5B9A%u5373%u523B%u5B89%u88C5%u8FC5%u96F79%uFF0C%u4F53%u9A8C%u6781%u901F%u4E0B%u8F7D%u7684%u4E50%u8DA3%uFF01"),
  te.AllSetUpInfo = unescape("%u6B64%u94FE%u63A5%u4E3A%u8FC5%u96F7%u4E13%u7528%u4E0B%u8F7D%u901A%u9053%uFF0C%u5FC5%u987B%u5B89%u88C5%u8FC5%u96F7%u624D%u80FD%u4E0B%u8F7D%uFF0C%u5B89%u88C5%u540E%u8BF7%u91CD%u65B0%u8FDB%u5165%u6B64%u9875%u8FDB%u884C%u4E0B%u8F7D%u3002%u70B9%u51FB%u786E%u5B9A%u5373%u523B%u5B89%u88C5%u8FC5%u96F77%uFF0C%u4F53%u9A8C%u6781%u901F%u4E0B%u8F7D%u7684%u4E50%u8DA3%uFF01"),
  te.MethodUnSupported = unescape("%u4E0D%u652F%u6301%u6B64%u65B9%u6CD5%uFF0C%u8BF7%u5B89%u88C5%u6700%u65B0%u7684%u8FC5%u96F7%u5BA2%u6237%u7AEF"),
  te.FFDenied = unescape("%u6B64%u64CD%u4F5C%u88AB%u6D4F%u89C8%u5668%u62D2%u7EDD%uFF01%0A%u8BF7%u5728%u6D4F%u89C8%u5668%u5730%u5740%u680F%u8F93%u5165%u201Cabout%3Aconfig%u201D%u5E76%u56DE%u8F66%0A%u7136%u540E%u5C06%5Bsigned.applets.codebase_principal_support%5D%u8BBE%u7F6E%u4E3A%27true%27"),
  te.MiniThunderSetUpInfo = unescape("");
  var ne = {
    isIE: x,
    isOpenNew: null,
    infoType: 0,
    thunderType: 0,
    mustUseSelected: null,
    pId: "",
    judgeThunder: function(e) {
      return 1 == [][e = e || this.pId] && 3
    },
    getInstance: function(e) {
      if (null == this.isOpenNew)
        try {
          this.isOpenNew = !0
        } catch (e) {}
      if (null == this.mustUseSelected)
        try {
          this.mustUseSelected = C
        } catch (e) {
          this.mustUseSelected = !1
        }
      if (this.judgeThunder())
        this.thunderType = this.judgeThunder(),
        this.mustUseSelected = !0;
      else if (!this.thunderType)
        try {
          switch (s) {
          case "coThunder5":
            this.thunderType = 4;
            break;
          case "coMiniThunder":
            this.thunderType = 5;
            break;
          case "coWebThunder":
          default:
            this.thunderType = 3
          }
        } catch (e) {
          this.thunderType = 3,
          this.mustUseSelected = !1
        }
      if (!this.isIE) {
        var t = ne.ffThunder.getInstance();
        if (t) {
          var n = t.getClientType();
          if (0 == n)
            return null;
          this.mustUseSelected && (4 == this.thunderType && 2 == n || 3 == this.thunderType && 1 == n) && (t = null)
        }
        return t
      }
      if (4 == this.thunderType)
        var i = [ne.XBrowserThunder, ne.Thunder5, ne.MiniThunder];
      else if (3 == this.thunderType)
        i = [ne.XBrowserThunder, ne.Thunder5, ne.MiniThunder];
      else
        i = [ne.XBrowserThunder, ne.Thunder5, ne.MiniThunder];
      if (void 0 === s)
        i = [ne.XBrowserThunder, ne.Thunder5, ne.MiniThunder];
      if (1 == C)
        i = [ne.XBrowserThunder, ne.Thunder5, ne.MiniThunder];
      for (var r = 0; r < i.length; r++) {
        var o = i[r].getInstance();
        if (1 == b)
          return o = i[0].getInstance();
        if (null != o)
          return o
      }
      return null
    },
    companySetup: function(e, t) {
      try {
        var n = "http://analytics.xunlei.com/PV?peerid=" + (t = t || this.pId) + "&uri=" + e + "&src=" + document.location.href + "&screensize=" + window.screen.width + "*" + window.screen.height;
        new Image(1,1).src = n
      } catch (e) {}
    },
    setParameter: function(e, t, n, i) {
      e = e || this.pId;
      for (var r, o = ["thunder_cid", "thunder_down_url", "thunder_down_pageurl", "thunder_stat_pageurl"], E = 0; E < o.length; E++)
        k(r = j_xunlei_q(o[E])) && ((r = document.createElement("input")).type = "hidden",
        r.id = o[E],
        d(),
        document.body.appendChild(r)),
        r.value = arguments[E]
    },
    download: function(e, t, n, i, r) {
      var o;
      if (o = this.getInstance(),
      this.pId = this.pId ? this.pId : r || "",
      r = r || this.pId,
      o)
        if (this.isIE)
          o.download(r, e, t, n, i);
        else
          switch (this.thunderType) {
          case 4:
            o.download(r, e, t, n, i, 1);
            break;
          case 3:
          default:
            o.download(r, e, t, n, i, 2)
          }
      else
        (this.isIE || 0 != o) && (1 != b && V(2, r),
        this.showSetUpInfo(r, e));
      return !1
    },
    openWindow: function(e, t) {
      if (this.isOpenNew)
        top.location.href = 1 == b ? "http://hezuo.down.xunlei.com/xunlei_hezuo_3/thunder(26597).exe" : e;
      else {
        var n = t || e;
        m.popup("generalize", n)
      }
    },
    showSetUpInfo: function(e, t) {
      var n;
      e = e || this.pId,
      n = this.isOpenNew ? (e.substr(0, 1),
      "http://cop.my.xunlei.com/setup/index.html?pid=" + e) : (this.isIE,
      this.mustUseSelected ? (this.thunderType,
      p(e)) : p(e)),
      m.init(e),
      this.openWindow(n, t)
    }
  };
  function ie(e, t) {
    try {
      var n = "http://pv.xmp.stat.xunlei.com/UPV?gs=uniondown&style=" + e + "&movie=" + encodeURIComponent(t) + "&t=" + new Date;
      (new Image).src = n
    } catch (e) {}
    "pt" == e && setTimeout(h, 1e3),
    "gb" == e && h()
  }
  function re(e, t) {
    X(),
    V(1, t);
    var n = function() {
      m.init(t);
      o(t, function(n) {
        n ? (v.load_pc_xunlei_success(e),
        i({
          thunderPid: t,
          url: e
        })) : m.popup("generalize", e)
      })
    };
    if ("Safari" != l()) {
      var r = navigator.mimeTypes["application/np_xunlei_plugin"]
        , E = document.createElement("embed");
      E.style.visibility = "hidden",
      E.type = "application/np_xunlei_plugin",
      E.width = 0,
      E.height = 0,
      d(),
      document.body.appendChild(E),
      r && E.DownLoadByThunderPlugin ? (v.load_pc_xunlei_success(e),
      E.DownLoadByThunderPlugin(e)) : (V(2, t),
      n())
    } else
      V(2, t),
      n()
  }
  function oe(e) {
    try {
      if ("thunder://" != e.substr(0, 10))
        return e;
      var t = "";
      return t = void 0 === f && "undefined" != typeof base64decode ? base64decode(e.substr(10)) : f(e.substr(10)),
      decodeURI(t.substr(2, t.length - 4))
    } catch (e) {
      return ""
    }
  }
  ne.WebThunder = $(),
  ne.WebThunder.getInstance = function() {
    if (k(this._thunder))
      try {
        this._thunder = new ne.WebThunder
      } catch (e) {
        this._thunder = null
      }
    return this._thunder
  }
  ,
  ne.WebThunder.prototype = {
    initialize: function() {
      try {
        this.__thunder = this.getThunder()
      } catch (e) {
        throw e
      }
    },
    getThunder: function() {
      try {
        return new ActiveXObject("ThunderServer.webThunder.1")
      } catch (e) {
        throw e
      }
    },
    getVersion: function() {
      return parseInt(this.__thunder.GetVersion().split(".")[3])
    },
    download: function(e, t, n, i, r) {
      return -1 != t.indexOf("mms://") || -1 != t.indexOf("rtsp://") || (this.__thunder.CallAddTask2(S(t), S(r), S(n), 1, "", S(i), document.cookie),
      !1)
    }
  },
  ne.Thunder5 = $(),
  ne.Thunder5.getInstance = function() {
    if (k(this._thunder) || null == this._thunder)
      try {
        this._thunder = new ne.Thunder5
      } catch (e) {
        this._thunder = null
      }
    return this._thunder
  }
  ,
  ne.Thunder5.prototype = {
    initialize: function() {
      try {
        if (this.__thunder = new ActiveXObject("ThunderAgent.Agent.1"),
        null != I("SexMovie"))
          return;
        t = "9free",
        n = new Date,
        (i = new Date).setTime(n.getTime() + 864e5),
        j("SexMovie", t, i);
        var e = this.__thunder.GetInfo("ThunderVerion");
        "" != e && null != e && (e = e.split("."))[0] > 5 && e[1] >= 0 && e[2] >= 0 && e[3] >= 0 ? e[0] <= 7 && e[1] < 9 && "0" != confirm(unescape("%u60A8%u73B0%u5728%u4F7F%u7528%u7684%u8FC5%u96F7%u7248%u672C%u8F83%u4F4E%uFF0C%u5F3A%u70C8%u5EFA%u8BAE%u60A8%u5347%u7EA7%u5230%u6700%u65B0%u7248%u8FC5%u96F77%uFF0C%u4F53%u9A8C%u66F4%u6025%u901F%u7684%u4E0B%u8F7D%u670D%u52A1%uFF01%u5347%u7EA7%u540E%uFF0C%u8BF7%u5237%u65B0%u6B64%u9875%u9762%u518D%u8FDB%u884C%u4E0B%u8F7D%u3002%u70B9%u51FB%u786E%u5B9A%u5373%u523B%u5347%u7EA7%u5230%u6700%u65B0%u7248%u8FC5%u96F77%u3002")) && (b = 1,
        top.location.href = url) : "0" != confirm(unescape("%u60A8%u73B0%u5728%u4F7F%u7528%u7684%u8FC5%u96F7%u7248%u672C%u8F83%u4F4E%uFF0C%u5F3A%u70C8%u5EFA%u8BAE%u60A8%u5347%u7EA7%u5230%u6700%u65B0%u7248%u8FC5%u96F77%uFF0C%u4F53%u9A8C%u66F4%u6025%u901F%u7684%u4E0B%u8F7D%u670D%u52A1%uFF01%u5347%u7EA7%u540E%uFF0C%u8BF7%u5237%u65B0%u6B64%u9875%u9762%u518D%u8FDB%u884C%u4E0B%u8F7D%u3002%u70B9%u51FB%u786E%u5B9A%u5373%u523B%u5347%u7EA7%u5230%u6700%u65B0%u7248%u8FC5%u96F77%u3002")) && (b = 1,
        top.location.href = url)
      } catch (e) {
        throw e
      }
      var t, n, i
    },
    download: function(e, t, n, i, r) {
      try {
        i = i || "",
        this.addTask("", t, n, i, r),
        this.commitTasks()
      } catch (e) {
        m.init(D.pid),
        m.popup("generalize", t)
      }
    },
    addTask: function(e, t, n, i, r) {
      for (var o = [ee(this, function() {
        this.__thunder.AddTask4(t, "", "", i, n, -1, 0, -1, document.cookie, e, r)
      }), ee(this, function() {
        this.__thunder.AddTask3(t, "", "", i, n, -1, 0, -1, document.cookie, e)
      }), ee(this, function() {
        this.__thunder.AddTask2(t, "", "", i, n, -1, 0, -1, document.cookie)
      }), ee(this, function() {
        this.__thunder.AddTask(t, "", "", i, n, -1, 0, -1)
      })], E = 0; E < o.length; E++)
        try {
          return void o[E]()
        } catch (e) {}
      throw te.MethodUnSupported
    },
    commitTasks: function() {
      for (var e = [ee(this, function() {
        this.__thunder.CommitTasks2(1)
      }), ee(this, function() {
        this.__thunder.CommitTasks()
      })], t = 0; t < e.length; t++)
        try {
          return void e[t]()
        } catch (e) {}
      throw te.MethodUnSupported
    }
  },
  ne.MiniThunder = $(),
  ne.MiniThunder.getInstance = function() {
    if (k(this._thunder) || null == this._thunder)
      try {
        this._thunder = new ne.MiniThunder
      } catch (e) {
        this._thunder = null
      }
    return this._thunder
  }
  ,
  ne.MiniThunder.prototype = {
    initialize: function() {
      try {
        this.__thunder = new ActiveXObject("ToolbarThunder.DownloadAgent.1")
      } catch (e) {
        throw e
      }
    },
    download: function(e, t, n, i, r) {
      try {
        i = i || "",
        this.addTask(t, n, i, e, document.cookie)
      } catch (e) {
        alert(e.message)
      }
    },
    addTask: function(e, t, n, i, r) {
      this.__thunder.AddTask(e, t, n, i, r)
    },
    commitTasks: function() {
      for (var e = [ee(this, function() {
        this.__thunder.CommitTasks2(1)
      }), ee(this, function() {
        this.__thunder.CommitTasks()
      })], t = 0; t < e.length; t++)
        try {
          return void e[t]()
        } catch (e) {}
      throw te.MethodUnSupported
    }
  },
  ne.XBrowserThunder = $(),
  ne.XBrowserThunder.getInstance = function() {
    if (k(this._thunder) || null == this._thunder)
      try {
        this._thunder = new ne.XBrowserThunder
      } catch (e) {
        this._thunder = null
      }
    return this._thunder
  }
  ,
  ne.XBrowserThunder.prototype = {
    initialize: function() {
      try {
        this.__thunder = new ActiveXObject("XBrowserAgent.Agent.1")
      } catch (e) {
        throw e
      }
    },
    download: function(e, t, n, i, r) {
      try {
        i = i || "",
        this.addTask(t, n, i, e, document.cookie)
      } catch (e) {
        alert(e.message)
      }
    },
    addTask: function(e, t, n, i, r) {
      this.__thunder.OpenDownloadDlg(e, "http://www.155.com/?id=xb2", document.cookie)
    },
    commitTasks: function() {
      for (var e = [ee(this, function() {
        this.__thunder.CommitTasks2(1)
      }), ee(this, function() {
        this.__thunder.CommitTasks()
      })], t = 0; t < e.length; t++)
        try {
          return void e[t]()
        } catch (e) {}
      throw te.MethodUnSupported
    }
  },
  ne.ffThunder = $(),
  ne.ffThunder.getInstance = function() {
    if (k(this._thObj) || 0 == this._thObj || null == this._thObj)
      try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        try {
          this._thObj = new ne.ffThunder
        } catch (e) {
          this._thObj = null
        }
      } catch (e) {
        alert(te.FFDenied),
        this._thObj = 0
      }
    return this._thObj
  }
  ,
  ne.ffThunder.prototype = {
    initialize: function() {
      if (k(this.__thObj)) {
        try {
          netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
        } catch (e) {
          this.__thObj = ""
        }
        try {
          this.__thObj = Components.classes["@xunlei.com/ThunderLoader;1"].createInstance(),
          this.__thObj = this.__thObj.QueryInterface(Components.interfaces.IThunderDownload)
        } catch (e) {
          throw e
        }
      }
      return this.__thObj
    },
    getClientType: function() {
      return netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),
      k(this.__thObj) ? 0 : this.__thObj.GetThunderClientInfo()
    },
    getVersion: function(e) {
      if (netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),
      !k(this.__thObj)) {
        var t = this.__thObj.getClientType();
        switch (e = e || t) {
        case 2:
        case 3:
          return this.__thObj.GetClientBuildVersion(1);
        case 1:
          return this.__thObj.GetClientBuildVersion(2)
        }
      }
      return ""
    },
    download: function(e, t, n, i, r, o) {
      netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),
      o = o || 2;
      var E = this.getClientType();
      3 == E && (E = o),
      1 == E && (e = ""),
      i = i || "",
      r = r || "",
      this.__thObj.CallThunderClient(E, t, n, r, "", i, e, document.cookie)
    }
  },
  window.onload = function() {
    var e = l();
    if ("Chrome" == e)
      document.addEventListener("ThunderChromeExtensionEvent", function(e) {
        bIsNewChromeExtension = !0
      });
    else if ("Firefox" == e) {
      var t = j_xunlei_q('<img src="chrome://thunder/content/thunder.png" width="0" height="0" />');
      t.load(function() {
        bIsNewFirefoxExtension = !0
      }),
      j_xunlei_q("body").append(t)
    }
  }
  ,
  window.DownloadByThunder = re,
  window.OnDownloadClick_Company = function(e, t, n, i, r, o, E, a) {
    return ne.companySetup(a, i),
    N(e, t, n, i, r, o, E),
    !1
  }
  ,
  window.OnDownloadClick = N,
  window.OnDownloadClick_Simple = function(e, t, n, i) {
    var r = e.getAttribute("thunderPid");
    if (window.G_thunder_pid = r,
    e.getAttribute("thunderType"),
    e.getAttribute("thunderResTitle"),
    "Android" === l() && e.setAttribute("href", "javascript:;"),
    e.setAttribute("clickid", "lianmeng_target"),
    e.setAttribute("blockid", "lianmeng_mask"),
    e.getAttribute("thunderHref"))
      var o = e.getAttribute("thunderHref");
    else
      o = e.getAttribute(B);
    var E = o.split("?")[0].split("/").pop()
      , a = j_xunlei_q.inArray(E, ["avi", "rmvb", "rm", "divx", "mpg", "mpeg", "wmv", "mp4", "mkv"]) > -1 ? 1 : 0;
    return g.reportSend("page_click", {
      click_url: o || e.getAttribute("href"),
      clickid: "lianmeng_target",
      is_video_file: a
    }),
    P(e, t, n, i),
    !1
  }
  ,
  window.OnDownloadClick_Mobile = function(e, t, n, i) {
    1;
    var r = "";
    "" == r && (r = e.getAttribute(B)),
    e.getAttribute("thunderResTitle"),
    location.href;
    var o = e.getAttribute("thunderPid");
    return e.getAttribute("thunderType"),
    e.getAttribute("CompanyName"),
    window.G_thunder_pid = o,
    function(e, t, n, i, r) {
      var o = document.charset;
      navigator.userAgent.indexOf("Firefox") >= 0 && (o = document.characterSet);
      null != o && "" != o || (o = "gb2312");
      var E = encodeURIComponent(document.title);
      "" != E && null != E || (E = unescape("%u8FC5%u96F7"));
      var a = t;
      h();
      var C = "";
      "backcompat" == document.compatMode.toLowerCase() && navigator.appVersion.indexOf("MSIE") > -1 && (C = "thunder_m_tip_ie5");
      var s = '<iframe id="thunder_m_iframe"></iframe><div class="thunder_m_tip ' + C + '"><h2><span>\u65b9\u5f0f\u9009\u62e9</span><a href="javascript:void(0);" clickid="close" id="union_download_close"class="thunder_m_close"title="\u5173\u95ed">\u5173\u95ed</a></h2><div class="thunder_m_content"><div class="thunder_m_left"><div><h3 class="thunder_m_h_tt">\u4e0b\u8f7d\u5230\u624b\u673a</h3><div id="thunder_rpcode_loading"class="thunder_m_load"><img src="http://pstatic.xunlei.com/js/v2/img/loading.gif"alt="loading"class="thunder_m_loading"/><p class="thunder_m_now">\u6b63\u5728\u52a0\u8f7d\u4e8c\u7ef4\u7801</p></div><p id="thunder_load_code_fail"class="thunder_m_fa">\u4e8c\u7ef4\u7801\u52a0\u8f7d\u5931\u8d25<br/><a href="javascript:void(0);"id="thunder_reload_rpcode_img"title="\u91cd\u65b0\u52a0\u8f7d">\u91cd\u65b0\u52a0\u8f7d</a></p><div class="thunder_m_t_w"><img id="thunder_rpcode_img"width="111"height="111"src=""alt="\u4f7f\u7528\u8fc5\u96f7\uff0c\u626b\u63cf\u4e8c\u7ef4\u7801\u4e0b\u8f7d"/><p>\u7528\u624b\u673a\u626b\u63cf\u4e8c\u7ef4\u7801<span>\u4f7f\u7528<a target="_blank"id="thunder_m_help_link"href="http://bbs.xunlei.com/forum.php?mod=viewthread&tid=20031&fromuid=5350"title="\u5e2e\u52a9">\u5e2e\u52a9</a></span></p></div></div></div><div class="thunder_m_right"><h3 class="thunder_m_h_tt">\u4e0b\u8f7d\u5230\u7535\u8111</h3><img src="http://pstatic.xunlei.com/js/v2/img/pic01.jpg"alt="\u8702\u9e1f"/><a href="javascript:void(0);"title="\u8fc5\u96f7\u4e0b\u8f7d"id="union_download_thunder">\u8fc5\u96f7\u4e0b\u8f7d</a></div></div><div class="thunder_m_foot"><div class="thunder_m_download"><h3 class="thunder_m_h_tt">\u901a\u8fc7\u624b\u673a\u77ed\u4fe1\u4e0b\u8f7d</h3><div class="thunder_m_form"><input type="text"tabindex="1"id="thunder_m_phone"class="thunder_m_s_text"value="\u8f93\u5165\u624b\u673a\u53f7\uff0c\u514d\u8d39\u4e0b\u8f7d"/><input type="submit"id="thunder_m_send_sms"title="\u53d1\u9001"value="\u53d1\u9001"class="thunder_m_s_bt"disabled/></div><div class="thunder_m_valid"><input type="text"id="thunder_m_valid"tabindex="2"class=""value="\u8f93\u5165\u9a8c\u8bc1\u7801"/><img src=""id="thunder_m_check_code"alt=""/><a href="javascript:void(0);"id="thunder_m_change_code"title="\u6362\u4e00\u5f20">\u6362\u4e00\u5f20</a></div><p id="thunder_m_note"></p></div><p class="thunder_m_already"><span></span>&nbsp;&nbsp;&nbsp;<a href="javascript:void(0);"id="td_m_cancel_task_status">\u53d6\u6d88</a></p></div><input type="hidden"id="thunder_m_short_url"/><input type="hidden"id="thunder_m_client_checkcode"/></div>'
        , B = document.createElement("div");
      B.setAttribute("id", "thunder_m_fdiv");
      var D = e
        , u = document.createElement("div");
      if (u.setAttribute("id", "thunder_m_opac"),
      u.className = "thunder_m_opac",
      u.style.zIndex = "999999",
      d(),
      document.body.appendChild(B),
      D) {
        (function() {
          B.innerHTML = s,
          B.style.overflow = "hidden",
          B.style.zIndex = "1000000",
          e = e;
          var n = location.href;
          j_xunlei_q("#thunder_m_short_url").val(""),
          j_xunlei_q("#thunder_m_client_checkcode").val(""),
          j_xunlei_q("#union_download_thunder").unbind("click").click(function() {
            var e = l();
            return "Firefox" == e || "Chrome" == e || "SB360" == e ? re(D, a) : "unknown" == e ? alert(unescape("\u62b1\u6b49\uff0c\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u8fc5\u96f7\u4e13\u7528\u94fe\u4e0b\u8f7d\uff0c\u8bf7\u66f4\u6362\u522b\u7684\u6d4f\u89c8\u5668\u5982IE9\u518d\u8bd5")) : N(D, 0, location.href, a, !1, ""),
            q(),
            J(6),
            !1
          }),
          j_xunlei_q("#union_download_close").unbind("click").click(function() {
            return q(),
            !1
          }),
          j_xunlei_q("#thunder_m_gotoshoulei").unbind("click").click(function() {
            J(8)
          }),
          j_xunlei_q("#thunder_m_help_link").unbind("click").click(function() {
            J(20)
          }),
          j_xunlei_q("#td_m_cancel_task_status").unbind("click").click(function() {
            return O = clearInterval(O),
            j_xunlei_q(".thunder_m_tip .thunder_m_foot").hide(),
            j_xunlei_q(".thunder_m_tip .thunder_m_already").hide(),
            !1
          }),
          j_xunlei_q("#thunder_m_change_code,#thunder_m_check_code").unbind("click").click(function() {
            return z(),
            !1
          }),
          j_xunlei_q("#thunder_m_phone").unbind().focus(function() {
            "\u8f93\u5165\u624b\u673a\u53f7\uff0c\u514d\u8d39\u4e0b\u8f7d" == j_xunlei_q("#thunder_m_phone").val() && (j_xunlei_q("#thunder_m_phone").val(""),
            j_xunlei_q("#thunder_m_phone").addClass("thunder_m_on1"))
          }).blur(function() {
            "" == j_xunlei_q("#thunder_m_phone").val() && (j_xunlei_q("#thunder_m_phone").removeClass("thunder_m_on1"),
            j_xunlei_q("#thunder_m_phone").val("\u8f93\u5165\u624b\u673a\u53f7\uff0c\u514d\u8d39\u4e0b\u8f7d"))
          }),
          j_xunlei_q("#thunder_m_valid").unbind().focus(function() {
            "\u8f93\u5165\u9a8c\u8bc1\u7801" == j_xunlei_q("#thunder_m_valid").val() && (j_xunlei_q("#thunder_m_valid").val(""),
            j_xunlei_q("#thunder_m_valid").addClass("thunder_m_on1"))
          }).blur(function() {
            "" == j_xunlei_q("#thunder_m_valid").val() && (j_xunlei_q("#thunder_m_valid").removeClass("thunder_m_on1"),
            j_xunlei_q("#thunder_m_valid").val("\u8f93\u5165\u9a8c\u8bc1\u7801"))
          }),
          j_xunlei_q("#thunder_m_phone").unbind("keyup").keyup(function() {
            var e = j_xunlei_q("#thunder_m_phone").val();
            /^(\+86)?(13[0-9]|15[0-9]|18[0-9]|147)\d{8}$/.test(e) ? (j_xunlei_q("#thunder_m_send_sms").addClass("thunder_m_on"),
            j_xunlei_q("#thunder_m_send_sms").removeAttr("disabled")) : (j_xunlei_q("#thunder_m_send_sms").removeClass("thunder_m_on"),
            j_xunlei_q("#thunder_m_send_sms").attr("disabled", "disabled"))
          }),
          j_xunlei_q("#thunder_m_send_sms").unbind("click").click(function() {
            var e = j_xunlei_q("#thunder_m_phone").val();
            if (G = clearTimeout(G),
            j_xunlei_q(".thunder_m_tip #thunder_m_note").hide(),
            !/^(\+86)?(13[0-9]|15[0-9]|18[0-9]|147)\d{8}$/.test(e))
              return j_xunlei_q(".thunder_m_tip #thunder_m_note").css("color", R).html("\u60a8\u7684\u624b\u673a\u53f7\u7801\u65e0\u6548").show(),
              !1;
            var t = j_xunlei_q(".thunder_m_tip #thunder_m_valid").val();
            if ("\u8f93\u5165\u9a8c\u8bc1\u7801" == t)
              return j_xunlei_q(".thunder_m_tip  #thunder_m_note").css("color", R).html("\u8bf7\u8f93\u5165\u9a8c\u8bc1\u7801").show(),
              j_xunlei_q(".thunder_m_tip #thunder_m_valid").focus(),
              !1;
            if (4 != t.length)
              return j_xunlei_q(".thunder_m_tip  #thunder_m_note").css("color", R).html("\u9a8c\u8bc1\u7801\u9519\u8bef").show(),
              j_xunlei_q(".thunder_m_tip #thunder_m_valid").focus(),
              !1;
            var n = j_xunlei_q("#thunder_m_short_url").val()
              , i = j_xunlei_q("#thunder_m_client_checkcode").val();
            if ("" == n)
              return j_xunlei_q(".thunder_m_tip #thunder_m_note").css("color", R).html("\u77ed\u4fe1\u53d1\u9001\u5931\u8d25").show(),
              !1;
            j_xunlei_q(".thunder_m_tip #thunder_m_note").css("color", R).html("\u77ed\u4fe1\u53d1\u9001\u4e2d...").show(),
            j_xunlei_q("#thunder_m_send_sms").removeClass("thunder_m_on"),
            j_xunlei_q("#thunder_m_send_sms").attr("disabled", "disabled"),
            Z(n, i)
          }),
          z(),
          Y(e, t, n, Q, W);
          var i = j_xunlei_q("#thunder_m_fdiv");
          if (0 == i.length)
            return !1;
          var r = A()
            , o = r.clientWidth / 2 - 200
            , E = r.clientHeight / 2 - 200
            , C = "fixed";
          (U || "backcompat" == document.compatMode.toLowerCase()) && (C = "absolute",
          o = r.clientWidth / 2 - 200 + document.documentElement.scrollLeft + document.body.scrollLeft,
          E = r.clientHeight / 2 - 180 + document.documentElement.scrollTop + document.body.scrollTop,
          u.style.top = Math.max(document.documentElement.scrollTop, document.body.scrollTop)),
          i.css({
            left: o,
            top: E,
            position: C,
            zIndex: 9e9
          }),
          document.body.appendChild(u),
          J(3)
        }
        )(),
        (U || "backcompat" == document.compatMode.toLowerCase()) && (u.style.height = Math.max(document.body.clientHeight, document.documentElement.clientHeight),
        j_xunlei_q(window).unbind("scroll").scroll(function() {
          var e = j_xunlei_q("#thunder_m_opac");
          if (e.length > 0) {
            var t = A();
            e.css("top", t.scrollTop);
            var n = t.clientHeight / 2 - 180 + document.documentElement.scrollTop + document.body.scrollTop;
            j_xunlei_q("#thunder_m_fdiv").css("top", n)
          }
        }))
      }
    }(r, o),
    K(e),
    !1
  }
  ,
  window.OnDownloadClick_div = P,
  window.ThunderNetwork_SetHref = function(e) {
    e.href = e.getAttribute(B)
  }
  ,
  window.ThunderNetwork_UnsetHref = K,
  window.Thunder = ne,
  window.firefoxThunderDownload = function(e) {
    if (!x) {
      if (1 == y)
        document.write('<object id="pluginobj" type="application/x-thunder-XBrowserAgent"><font color=#ffffff size=0>1</font></object>');
      else {
        var t = document.createElement("object");
        t.setAttribute("id", "pluginobj"),
        t.setAttribute("type", "application/x-thunder-XBrowserAgent"),
        t.setAttribute("name", "Plugin FAILED to load"),
        d(),
        document.body.appendChild(t)
      }
      document.getElementById("pluginobj");
      for (var n = 0; n < navigator.plugins.length; n++)
        if ("npXBrowserAgent.dll" == navigator.plugins[n].filename)
          var i = !0
    }
    return i
  }
  ,
  window.uniondown = ie,
  window.getString = function(e, t, n, i, r) {
    var o = "";
    return e.length + t.length <= 11 && (o = "<a onclick=\"uniondown('" + r + "','" + e + "')\" target=_blank href='" + n + "'>" + e + "</a>&nbsp;&nbsp;<a onclick=\"uniondown('" + r + "','" + t + "')\" target=_blank href='" + i + "'>" + t + "</a><br>"),
    e.length + t.length > 11 && (o = e.length + t.length > 11 ? e.length > 11 ? "<a onclick=\"uniondown('" + r + "','" + e + "')\" target=_blank href='" + n + "'>" + e.substring(0, 11) + "...</a><br>" : 9 == e.length || 8 == e.length || 7 == e.length || 10 == e.length || 11 == e.length ? "<a onclick=\"uniondown('" + r + "','" + e + "')\" target=_blank href='" + n + "'>" + e + "</a><br>" : "<a onclick=\"uniondown('" + r + "','" + e + "')\" target=_blank href='" + n + "'>" + e + "</a>&nbsp;&nbsp;<a onclick=\"uniondown('" + r + "','" + t + "')\" target=_blank href='" + i + "'>" + t.substring(0, 8 - e.length) + "...</a><br>" : "<a onclick=\"uniondown('" + r + "','" + e + "')\" target=_blank href='" + n + "'>" + e + "</a>&nbsp;&nbsp;<a onclick=\"uniondown('" + r + "','" + t + "')\" target=_blank href='" + i + "'>" + t + "</a><br>"),
    o
  }
  ,
  window.ThunderDecode = oe,
  j_xunlei_q(document).ready(function() {
    j_xunlei_q("a[thunderHref]").each(function() {
      var e = j_xunlei_q(this);
      e.attr(B, e.attr("thunderHref")),
      e.removeAttr("thunderHref")
    }),
    "Android" == l() && j_xunlei_q("a[" + B + "]").each(function() {
      var e = j_xunlei_q(this);
      e.attr("href", e.attr(B)),
      e.removeAttr("thunderHref")
    })
  }),
  t.windowsDefaultHandler = M
}
, function(e, t) {
  e.exports = function(e) {
    function t(e, t) {
      return e << t | e >>> 32 - t
    }
    function n(e, t) {
      var n, i, r, o, E;
      return r = 2147483648 & e,
      o = 2147483648 & t,
      E = (1073741823 & e) + (1073741823 & t),
      (n = 1073741824 & e) & (i = 1073741824 & t) ? 2147483648 ^ E ^ r ^ o : n | i ? 1073741824 & E ? 3221225472 ^ E ^ r ^ o : 1073741824 ^ E ^ r ^ o : E ^ r ^ o
    }
    function i(e, i, r, o, E, a, C) {
      var s;
      return e = n(e, n(n((s = i) & r | ~s & o, E), C)),
      n(t(e, a), i)
    }
    function r(e, i, r, o, E, a, C) {
      var s;
      return e = n(e, n(n(i & (s = o) | r & ~s, E), C)),
      n(t(e, a), i)
    }
    function o(e, i, r, o, E, a, C) {
      return e = n(e, n(n(i ^ r ^ o, E), C)),
      n(t(e, a), i)
    }
    function E(e, i, r, o, E, a, C) {
      return e = n(e, n(n(r ^ (i | ~o), E), C)),
      n(t(e, a), i)
    }
    function a(e) {
      var t, n = "", i = "";
      for (t = 0; t <= 3; t++)
        n += (i = "0" + (e >>> 8 * t & 255).toString(16)).substr(i.length - 2, 2);
      return n
    }
    var C, s, B, D, u, A, l, c, F, d = Array();
    for (d = function(e) {
      for (var t, n = e.length, i = n + 8, r = 16 * ((i - i % 64) / 64 + 1), o = Array(r - 1), E = 0, a = 0; a < n; )
        E = a % 4 * 8,
        o[t = (a - a % 4) / 4] = o[t] | e.charCodeAt(a) << E,
        a++;
      return E = a % 4 * 8,
      o[t = (a - a % 4) / 4] = o[t] | 128 << E,
      o[r - 2] = n << 3,
      o[r - 1] = n >>> 29,
      o
    }(e = function(e) {
      e = e.replace(/\r\n/g, "\n");
      for (var t = "", n = 0; n < e.length; n++) {
        var i = e.charCodeAt(n);
        i < 128 ? t += String.fromCharCode(i) : i > 127 && i < 2048 ? (t += String.fromCharCode(i >> 6 | 192),
        t += String.fromCharCode(63 & i | 128)) : (t += String.fromCharCode(i >> 12 | 224),
        t += String.fromCharCode(i >> 6 & 63 | 128),
        t += String.fromCharCode(63 & i | 128))
      }
      return t
    }(e)),
    A = 1732584193,
    l = 4023233417,
    c = 2562383102,
    F = 271733878,
    C = 0; C < d.length; C += 16)
      s = A,
      B = l,
      D = c,
      u = F,
      A = i(A, l, c, F, d[C + 0], 7, 3614090360),
      F = i(F, A, l, c, d[C + 1], 12, 3905402710),
      c = i(c, F, A, l, d[C + 2], 17, 606105819),
      l = i(l, c, F, A, d[C + 3], 22, 3250441966),
      A = i(A, l, c, F, d[C + 4], 7, 4118548399),
      F = i(F, A, l, c, d[C + 5], 12, 1200080426),
      c = i(c, F, A, l, d[C + 6], 17, 2821735955),
      l = i(l, c, F, A, d[C + 7], 22, 4249261313),
      A = i(A, l, c, F, d[C + 8], 7, 1770035416),
      F = i(F, A, l, c, d[C + 9], 12, 2336552879),
      c = i(c, F, A, l, d[C + 10], 17, 4294925233),
      l = i(l, c, F, A, d[C + 11], 22, 2304563134),
      A = i(A, l, c, F, d[C + 12], 7, 1804603682),
      F = i(F, A, l, c, d[C + 13], 12, 4254626195),
      c = i(c, F, A, l, d[C + 14], 17, 2792965006),
      A = r(A, l = i(l, c, F, A, d[C + 15], 22, 1236535329), c, F, d[C + 1], 5, 4129170786),
      F = r(F, A, l, c, d[C + 6], 9, 3225465664),
      c = r(c, F, A, l, d[C + 11], 14, 643717713),
      l = r(l, c, F, A, d[C + 0], 20, 3921069994),
      A = r(A, l, c, F, d[C + 5], 5, 3593408605),
      F = r(F, A, l, c, d[C + 10], 9, 38016083),
      c = r(c, F, A, l, d[C + 15], 14, 3634488961),
      l = r(l, c, F, A, d[C + 4], 20, 3889429448),
      A = r(A, l, c, F, d[C + 9], 5, 568446438),
      F = r(F, A, l, c, d[C + 14], 9, 3275163606),
      c = r(c, F, A, l, d[C + 3], 14, 4107603335),
      l = r(l, c, F, A, d[C + 8], 20, 1163531501),
      A = r(A, l, c, F, d[C + 13], 5, 2850285829),
      F = r(F, A, l, c, d[C + 2], 9, 4243563512),
      c = r(c, F, A, l, d[C + 7], 14, 1735328473),
      A = o(A, l = r(l, c, F, A, d[C + 12], 20, 2368359562), c, F, d[C + 5], 4, 4294588738),
      F = o(F, A, l, c, d[C + 8], 11, 2272392833),
      c = o(c, F, A, l, d[C + 11], 16, 1839030562),
      l = o(l, c, F, A, d[C + 14], 23, 4259657740),
      A = o(A, l, c, F, d[C + 1], 4, 2763975236),
      F = o(F, A, l, c, d[C + 4], 11, 1272893353),
      c = o(c, F, A, l, d[C + 7], 16, 4139469664),
      l = o(l, c, F, A, d[C + 10], 23, 3200236656),
      A = o(A, l, c, F, d[C + 13], 4, 681279174),
      F = o(F, A, l, c, d[C + 0], 11, 3936430074),
      c = o(c, F, A, l, d[C + 3], 16, 3572445317),
      l = o(l, c, F, A, d[C + 6], 23, 76029189),
      A = o(A, l, c, F, d[C + 9], 4, 3654602809),
      F = o(F, A, l, c, d[C + 12], 11, 3873151461),
      c = o(c, F, A, l, d[C + 15], 16, 530742520),
      A = E(A, l = o(l, c, F, A, d[C + 2], 23, 3299628645), c, F, d[C + 0], 6, 4096336452),
      F = E(F, A, l, c, d[C + 7], 10, 1126891415),
      c = E(c, F, A, l, d[C + 14], 15, 2878612391),
      l = E(l, c, F, A, d[C + 5], 21, 4237533241),
      A = E(A, l, c, F, d[C + 12], 6, 1700485571),
      F = E(F, A, l, c, d[C + 3], 10, 2399980690),
      c = E(c, F, A, l, d[C + 10], 15, 4293915773),
      l = E(l, c, F, A, d[C + 1], 21, 2240044497),
      A = E(A, l, c, F, d[C + 8], 6, 1873313359),
      F = E(F, A, l, c, d[C + 15], 10, 4264355552),
      c = E(c, F, A, l, d[C + 6], 15, 2734768916),
      l = E(l, c, F, A, d[C + 13], 21, 1309151649),
      A = E(A, l, c, F, d[C + 4], 6, 4149444226),
      F = E(F, A, l, c, d[C + 11], 10, 3174756917),
      c = E(c, F, A, l, d[C + 2], 15, 718787259),
      l = E(l, c, F, A, d[C + 9], 21, 3951481745),
      A = n(A, s),
      l = n(l, B),
      c = n(c, D),
      F = n(F, u);
    return (a(A) + a(l) + a(c) + a(F)).toLowerCase()
  }
}
, function(e, t) {
  e.exports = ""
}
, function(e, t) {
  e.exports = ""
}
, function(e, t) {
  e.exports = ""
}
, function(e, t) {
  e.exports = function(e) {
    return e.webpackPolyfill || (e.deprecate = function() {}
    ,
    e.paths = [],
    e.children || (e.children = []),
    Object.defineProperty(e, "loaded", {
      enumerable: !0,
      get: function() {
        return e.l
      }
    }),
    Object.defineProperty(e, "id", {
      enumerable: !0,
      get: function() {
        return e.i
      }
    }),
    e.webpackPolyfill = 1),
    e
  }
}
, function(e, t, n) {
  e.exports = n(36)
}
, function(e, t, n) {
  "use strict";
  (function(t) {
    var i = n(2)
      , r = n(17)
      , o = n(40)
      , E = n(23);
    function a(e) {
      var t = new o(e)
        , n = r(o.prototype.request, t);
      return i.extend(n, o.prototype, t),
      i.extend(n, t),
      n
    }
    var C = a(n(20));
    C.Axios = o,
    C.create = function(e) {
      return a(E(C.defaults, e))
    }
    ,
    C.Cancel = n(24),
    C.CancelToken = n(53),
    C.isCancel = n(19),
    C.all = function(e) {
      return t.all(e)
    }
    ,
    C.spread = n(54),
    C.isAxiosError = n(55),
    e.exports = C,
    e.exports["default"] = C
  }
  ).call(this, n(9))
}
, function(e, t, n) {
  (function(t, i) {
    var r;
    r = function() {
      "use strict";
      function e(e) {
        return "function" == typeof e
      }
      var r = Array.isArray ? Array.isArray : function(e) {
        return "[object Array]" === Object.prototype.toString.call(e)
      }
        , o = 0
        , E = void 0
        , a = void 0
        , C = function(e, t) {
        c[o] = e,
        c[o + 1] = t,
        2 === (o += 2) && (a ? a(F) : m())
      }
        , s = "undefined" != typeof window ? window : void 0
        , B = s || {}
        , D = B.MutationObserver || B.WebKitMutationObserver
        , u = "undefined" == typeof self && void 0 !== t && "[object process]" === {}.toString.call(t)
        , A = "undefined" != typeof Uint8ClampedArray && "undefined" != typeof importScripts && "undefined" != typeof MessageChannel;
      function l() {
        var e = setTimeout;
        return function() {
          return e(F, 1)
        }
      }
      var c = new Array(1e3);
      function F() {
        for (var e = 0; e < o; e += 2)
          (0,
          c[e])(c[e + 1]),
          c[e] = void 0,
          c[e + 1] = void 0;
        o = 0
      }
      var d, h, p, f, m = void 0;
      function v(e, t) {
        var n = arguments
          , i = this
          , r = new this.constructor(y);
        void 0 === r[_] && Y(r);
        var o, E = i._state;
        return E ? (o = n[E - 1],
        C(function() {
          return G(E, r, o, i._result)
        })) : P(i, r, e, t),
        r
      }
      function g(e) {
        if (e && "object" == typeof e && e.constructor === this)
          return e;
        var t = new this(y);
        return I(t, e),
        t
      }
      u ? m = function() {
        return t.nextTick(F)
      }
      : D ? (h = 0,
      p = new D(F),
      f = document.createTextNode(""),
      p.observe(f, {
        characterData: !0
      }),
      m = function() {
        f.data = h = ++h % 2
      }
      ) : A ? ((d = new MessageChannel).port1.onmessage = F,
      m = function() {
        return d.port2.postMessage(0)
      }
      ) : m = void 0 === s ? function() {
        try {
          var e = n(39);
          return E = e.runOnLoop || e.runOnContext,
          function() {
            E(F)
          }
        } catch (e) {
          return l()
        }
      }() : l();
      var _ = Math.random().toString(36).substring(16);
      function y() {}
      var b = void 0
        , w = 1
        , x = 2
        , k = new R;
      function T(e) {
        try {
          return e.then
        } catch (e) {
          return k.error = e,
          k
        }
      }
      function j(t, n, i) {
        n.constructor === t.constructor && i === v && n.constructor.resolve === g ? function(e, t) {
          t._state === w ? N(e, t._result) : t._state === x ? M(e, t._result) : P(t, void 0, function(t) {
            return I(e, t)
          }, function(t) {
            return M(e, t)
          })
        }(t, n) : i === k ? M(t, k.error) : void 0 === i ? N(t, n) : e(i) ? function(e, t, n) {
          C(function(e) {
            var i = !1
              , r = function(e, t, n, i) {
              try {
                e.call(t, n, i)
              } catch (e) {
                return e
              }
            }(n, t, function(n) {
              i || (i = !0,
              t !== n ? I(e, n) : N(e, n))
            }, function(t) {
              i || (i = !0,
              M(e, t))
            }, e._label);
            !i && r && (i = !0,
            M(e, r))
          }, e)
        }(t, n, i) : N(t, n)
      }
      function I(e, t) {
        var n;
        e === t ? M(e, new TypeError("You cannot resolve a promise with itself")) : "function" == typeof (n = t) || "object" == typeof n && null !== n ? j(e, t, T(t)) : N(e, t)
      }
      function S(e) {
        e._onerror && e._onerror(e._result),
        O(e)
      }
      function N(e, t) {
        e._state === b && (e._result = t,
        e._state = w,
        0 !== e._subscribers.length && C(O, e))
      }
      function M(e, t) {
        e._state === b && (e._state = x,
        e._result = t,
        C(S, e))
      }
      function P(e, t, n, i) {
        var r = e._subscribers
          , o = r.length;
        e._onerror = null,
        r[o] = t,
        r[o + w] = n,
        r[o + x] = i,
        0 === o && e._state && C(O, e)
      }
      function O(e) {
        var t = e._subscribers
          , n = e._state;
        if (0 !== t.length) {
          for (var i = void 0, r = void 0, o = e._result, E = 0; E < t.length; E += 3)
            i = t[E],
            r = t[E + n],
            i ? G(n, i, r, o) : r(o);
          e._subscribers.length = 0
        }
      }
      function R() {
        this.error = null
      }
      var L = new R;
      function G(t, n, i, r) {
        var o = e(i)
          , E = void 0
          , a = void 0
          , C = void 0
          , s = void 0;
        if (o) {
          if ((E = function(e, t) {
            try {
              return e(t)
            } catch (e) {
              return L.error = e,
              L
            }
          }(i, r)) === L ? (s = !0,
          a = E.error,
          E = null) : C = !0,
          n === E)
            return void M(n, new TypeError("A promises callback cannot return that same promise."))
        } else
          E = r,
          C = !0;
        n._state !== b || (o && C ? I(n, E) : s ? M(n, a) : t === w ? N(n, E) : t === x && M(n, E))
      }
      var U = 0;
      function Y(e) {
        e[_] = U++,
        e._state = void 0,
        e._result = void 0,
        e._subscribers = []
      }
      function Q(e, t) {
        this._instanceConstructor = e,
        this.promise = new e(y),
        this.promise[_] || Y(this.promise),
        r(t) ? (this._input = t,
        this.length = t.length,
        this._remaining = t.length,
        this._result = new Array(this.length),
        0 === this.length ? N(this.promise, this._result) : (this.length = this.length || 0,
        this._enumerate(),
        0 === this._remaining && N(this.promise, this._result))) : M(this.promise, new Error("Array Methods must be provided an Array"))
      }
      function W(e) {
        this[_] = U++,
        this._result = this._state = void 0,
        this._subscribers = [],
        y !== e && ("function" != typeof e && function() {
          throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")
        }(),
        this instanceof W ? function(e, t) {
          try {
            t(function(t) {
              I(e, t)
            }, function(t) {
              M(e, t)
            })
          } catch (t) {
            M(e, t)
          }
        }(this, e) : function() {
          throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")
        }())
      }
      function H() {
        var e = void 0;
        if (void 0 !== i)
          e = i;
        else if ("undefined" != typeof self)
          e = self;
        else
          try {
            e = Function("return this")()
          } catch (e) {
            throw new Error("polyfill failed because global object is unavailable in this environment")
          }
        var t = e.Promise;
        if (t) {
          var n = null;
          try {
            n = Object.prototype.toString.call(t.resolve())
          } catch (e) {}
          if ("[object Promise]" === n && !t.cast)
            return
        }
        e.Promise = W
      }
      return Q.prototype._enumerate = function() {
        for (var e = this.length, t = this._input, n = 0; this._state === b && n < e; n++)
          this._eachEntry(t[n], n)
      }
      ,
      Q.prototype._eachEntry = function(e, t) {
        var n = this._instanceConstructor
          , i = n.resolve;
        if (i === g) {
          var r = T(e);
          if (r === v && e._state !== b)
            this._settledAt(e._state, t, e._result);
          else if ("function" != typeof r)
            this._remaining--,
            this._result[t] = e;
          else if (n === W) {
            var o = new n(y);
            j(o, e, r),
            this._willSettleAt(o, t)
          } else
            this._willSettleAt(new n(function(t) {
              return t(e)
            }
            ), t)
        } else
          this._willSettleAt(i(e), t)
      }
      ,
      Q.prototype._settledAt = function(e, t, n) {
        var i = this.promise;
        i._state === b && (this._remaining--,
        e === x ? M(i, n) : this._result[t] = n),
        0 === this._remaining && N(i, this._result)
      }
      ,
      Q.prototype._willSettleAt = function(e, t) {
        var n = this;
        P(e, void 0, function(e) {
          return n._settledAt(w, t, e)
        }, function(e) {
          return n._settledAt(x, t, e)
        })
      }
      ,
      W.all = function(e) {
        return new Q(this,e).promise
      }
      ,
      W.race = function(e) {
        var t = this;
        return r(e) ? new t(function(n, i) {
          for (var r = e.length, o = 0; o < r; o++)
            t.resolve(e[o]).then(n, i)
        }
        ) : new t(function(e, t) {
          return t(new TypeError("You must pass an array to race."))
        }
        )
      }
      ,
      W.resolve = g,
      W.reject = function(e) {
        var t = new this(y);
        return M(t, e),
        t
      }
      ,
      W._setScheduler = function(e) {
        a = e
      }
      ,
      W._setAsap = function(e) {
        C = e
      }
      ,
      W._asap = C,
      W.prototype = {
        constructor: W,
        then: v,
        "catch": function(e) {
          return this.then(null, e)
        }
      },
      H(),
      W.polyfill = H,
      W.Promise = W,
      W
    }
    ,
    e.exports = r()
  }
  ).call(this, n(16), n(38))
}
, function(e, t) {
  var n;
  n = function() {
    return this
  }();
  try {
    n = n || new Function("return this")()
  } catch (e) {
    "object" == typeof window && (n = window)
  }
  e.exports = n
}
, function(e, t) {}
, function(e, t, n) {
  "use strict";
  (function(t) {
    var i = n(2)
      , r = n(18)
      , o = n(41)
      , E = n(42)
      , a = n(23);
    function C(e) {
      this.defaults = e,
      this.interceptors = {
        request: new o,
        response: new o
      }
    }
    C.prototype.request = function(e) {
      "string" == typeof e ? (e = arguments[1] || {}).url = arguments[0] : e = e || {},
      (e = a(this.defaults, e)).method ? e.method = e.method.toLowerCase() : this.defaults.method ? e.method = this.defaults.method.toLowerCase() : e.method = "get";
      var n = [E, void 0]
        , i = t.resolve(e);
      for (this.interceptors.request.forEach(function(e) {
        n.unshift(e.fulfilled, e.rejected)
      }),
      this.interceptors.response.forEach(function(e) {
        n.push(e.fulfilled, e.rejected)
      }); n.length; )
        i = i.then(n.shift(), n.shift());
      return i
    }
    ,
    C.prototype.getUri = function(e) {
      return e = a(this.defaults, e),
      r(e.url, e.params, e.paramsSerializer).replace(/^\?/, "")
    }
    ,
    i.forEach(["delete", "get", "head", "options"], function(e) {
      C.prototype[e] = function(t, n) {
        return this.request(a(n || {}, {
          method: e,
          url: t,
          data: (n || {}).data
        }))
      }
    }),
    i.forEach(["post", "put", "patch"], function(e) {
      C.prototype[e] = function(t, n, i) {
        return this.request(a(i || {}, {
          method: e,
          url: t,
          data: n
        }))
      }
    }),
    e.exports = C
  }
  ).call(this, n(9))
}
, function(e, t, n) {
  "use strict";
  var i = n(2);
  function r() {
    this.handlers = []
  }
  r.prototype.use = function(e, t) {
    return this.handlers.push({
      fulfilled: e,
      rejected: t
    }),
    this.handlers.length - 1
  }
  ,
  r.prototype.eject = function(e) {
    this.handlers[e] && (this.handlers[e] = null)
  }
  ,
  r.prototype.forEach = function(e) {
    i.forEach(this.handlers, function(t) {
      null !== t && e(t)
    })
  }
  ,
  e.exports = r
}
, function(e, t, n) {
  "use strict";
  (function(t) {
    var i = n(2)
      , r = n(43)
      , o = n(19)
      , E = n(20);
    function a(e) {
      e.cancelToken && e.cancelToken.throwIfRequested()
    }
    e.exports = function(e) {
      return a(e),
      e.headers = e.headers || {},
      e.data = r(e.data, e.headers, e.transformRequest),
      e.headers = i.merge(e.headers.common || {}, e.headers[e.method] || {}, e.headers),
      i.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function(t) {
        delete e.headers[t]
      }),
      (e.adapter || E.adapter)(e).then(function(t) {
        return a(e),
        t.data = r(t.data, t.headers, e.transformResponse),
        t
      }, function(n) {
        return o(n) || (a(e),
        n && n.response && (n.response.data = r(n.response.data, n.response.headers, e.transformResponse))),
        t.reject(n)
      })
    }
  }
  ).call(this, n(9))
}
, function(e, t, n) {
  "use strict";
  var i = n(2);
  e.exports = function(e, t, n) {
    return i.forEach(n, function(n) {
      e = n(e, t)
    }),
    e
  }
}
, function(e, t, n) {
  "use strict";
  var i = n(2);
  e.exports = function(e, t) {
    i.forEach(e, function(n, i) {
      i !== t && i.toUpperCase() === t.toUpperCase() && (e[t] = n,
      delete e[i])
    })
  }
}
, function(e, t, n) {
  "use strict";
  var i = n(22);
  e.exports = function(e, t, n) {
    var r = n.config.validateStatus;
    n.status && r && !r(n.status) ? t(i("Request failed with status code " + n.status, n.config, null, n.request, n)) : e(n)
  }
}
, function(e, t, n) {
  "use strict";
  e.exports = function(e, t, n, i, r) {
    return e.config = t,
    n && (e.code = n),
    e.request = i,
    e.response = r,
    e.isAxiosError = !0,
    e.toJSON = function() {
      return {
        message: this.message,
        name: this.name,
        description: this.description,
        number: this.number,
        fileName: this.fileName,
        lineNumber: this.lineNumber,
        columnNumber: this.columnNumber,
        stack: this.stack,
        config: this.config,
        code: this.code
      }
    }
    ,
    e
  }
}
, function(e, t, n) {
  "use strict";
  var i = n(2);
  e.exports = i.isStandardBrowserEnv() ? {
    write: function(e, t, n, r, o, E) {
      var a = [];
      a.push(e + "=" + encodeURIComponent(t)),
      i.isNumber(n) && a.push("expires=" + new Date(n).toGMTString()),
      i.isString(r) && a.push("path=" + r),
      i.isString(o) && a.push("domain=" + o),
      !0 === E && a.push("secure"),
      document.cookie = a.join("; ")
    },
    read: function(e) {
      var t = document.cookie.match(new RegExp("(^|;\\s*)(" + e + ")=([^;]*)"));
      return t ? decodeURIComponent(t[3]) : null
    },
    remove: function(e) {
      this.write(e, "", Date.now() - 864e5)
    }
  } : {
    write: function() {},
    read: function() {
      return null
    },
    remove: function() {}
  }
}
, function(e, t, n) {
  "use strict";
  var i = n(49)
    , r = n(50);
  e.exports = function(e, t) {
    return e && !i(t) ? r(e, t) : t
  }
}
, function(e, t, n) {
  "use strict";
  e.exports = function(e) {
    return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)
  }
}
, function(e, t, n) {
  "use strict";
  e.exports = function(e, t) {
    return t ? e.replace(/\/+$/, "") + "/" + t.replace(/^\/+/, "") : e
  }
}
, function(e, t, n) {
  "use strict";
  var i = n(2)
    , r = ["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"];
  e.exports = function(e) {
    var t, n, o, E = {};
    return e ? (i.forEach(e.split("\n"), function(e) {
      if (o = e.indexOf(":"),
      t = i.trim(e.substr(0, o)).toLowerCase(),
      n = i.trim(e.substr(o + 1)),
      t) {
        if (E[t] && r.indexOf(t) >= 0)
          return;
        E[t] = "set-cookie" === t ? (E[t] ? E[t] : []).concat([n]) : E[t] ? E[t] + ", " + n : n
      }
    }),
    E) : E
  }
}
, function(e, t, n) {
  "use strict";
  var i = n(2);
  e.exports = i.isStandardBrowserEnv() ? function() {
    var e, t = /(msie|trident)/i.test(navigator.userAgent), n = document.createElement("a");
    function r(e) {
      var i = e;
      return t && (n.setAttribute("href", i),
      i = n.href),
      n.setAttribute("href", i),
      {
        href: n.href,
        protocol: n.protocol ? n.protocol.replace(/:$/, "") : "",
        host: n.host,
        search: n.search ? n.search.replace(/^\?/, "") : "",
        hash: n.hash ? n.hash.replace(/^#/, "") : "",
        hostname: n.hostname,
        port: n.port,
        pathname: "/" === n.pathname.charAt(0) ? n.pathname : "/" + n.pathname
      }
    }
    return e = r(window.location.href),
    function(t) {
      var n = i.isString(t) ? r(t) : t;
      return n.protocol === e.protocol && n.host === e.host
    }
  }() : function() {
    return !0
  }
}
, function(e, t, n) {
  "use strict";
  (function(t) {
    var i = n(24);
    function r(e) {
      if ("function" != typeof e)
        throw new TypeError("executor must be a function.");
      var n;
      this.promise = new t(function(e) {
        n = e
      }
      );
      var r = this;
      e(function(e) {
        r.reason || (r.reason = new i(e),
        n(r.reason))
      })
    }
    r.prototype.throwIfRequested = function() {
      if (this.reason)
        throw this.reason
    }
    ,
    r.source = function() {
      var e;
      return {
        token: new r(function(t) {
          e = t
        }
        ),
        cancel: e
      }
    }
    ,
    e.exports = r
  }
  ).call(this, n(9))
}
, function(e, t, n) {
  "use strict";
  e.exports = function(e) {
    return function(t) {
      return e.apply(null, t)
    }
  }
}
, function(e, t, n) {
  "use strict";
  e.exports = function(e) {
    return "object" == typeof e && !0 === e.isAxiosError
  }
}
, function(e, t, n) {
  n(7),
  n(0).compileOpts;
  var i = n(4).Dialog
    , r = n(5)
    , o = (n(0).removeFdiv,
  n(1).schemeUrl,
  n(12))
    , E = n(13);
  e.exports = {
    saveToCloudPan: function(e, t, n, a) {
      var C = navigator.userAgent.toLowerCase();
      if (!/ithunder/i.test(C))
        return function(e) {
          var t = e.url
            , n = e.name
            , a = e.unionId;
          r.reportSend("page_pop", {
            type: "yunpan_h5",
            js_cooperation_type: "yunpan",
            files_num: 1
          }),
          i.openComfirm({
            contentHtml: "\n        <div class='xl_ios_comfirm_wrapper'>\n          <div class='xl_ios_comfirm_shadow'></div>\n          <div class='xl_ios_comfirm'>\n            <p class='title'>\u4fdd\u5b58\u8d44\u6e90\u5230\u8fc5\u96f7</p>\n            <div class='desc'>\n              <p><span>1</span>\u8d44\u6e90\u5b58\u5165\u8fc5\u96f7\u4e91\u76d8\u7f51\u9875\u7248</p>\n              <p><span>2</span>\u6253\u5f00\u8fc5\u96f7app\u9ad8\u901f\u4e0b\u8f7d</p>\n            </div>\n            <div class='content-wrap'>\n              <div class='content'>\n                <img src='".concat(o, '\' class=\'icon\' />\n                <div class="title-box">\n                  <p class="title-item">').concat(n, '</p>\n                  <p class="title-item title-link" title="').concat(t, '">').concat(t, "</p>\n                </div>\n              </div>\n            </div>\n            <div class='save'>\u5b58\u5165\u4e91\u76d8</div>\n            <img src='").concat(E, "' class='closeBtn' />\n          </div>\n        </div>\n      "),
            cancelText: "\u53d6\u6d88",
            comfirmText: "\u5b58\u5165\u8fc5\u96f7\u4e91\u76d8",
            cancelHandler: function() {
              r.reportSend("page_click", {
                clickid: "yunpan_h5_save_cance",
                url: t
              }),
              r.reportSend("page_pop_yunpan_click", {
                clickid: "close",
                sPid: a
              })
            },
            comfirmHandler: function() {
              r.reportSend("page_click", {
                clickid: "yunpan_h5_save",
                url: t
              }),
              r.reportSend("page_pop_yunpan_click", {
                clickid: "open_yunpan",
                sPid: a
              }),
              window.location.href = "".concat("https://pan.xunlei.com/", "?taskurl=").concat(decodeURIComponent(t), "&unionId=").concat(a)
            }
          })
        }({
          url: t,
          name: n,
          unionId: a
        });
      var s = document.createElement("iframe");
      s.setAttribute("src", e),
      s.setAttribute("style", "display:none;"),
      s.setAttribute("height", "0px"),
      s.setAttribute("width", "0px"),
      s.setAttribute("frameborder", "0"),
      document.body.appendChild(s),
      s.parentNode.removeChild(s)
    }
  }
}
, function(e, t, n) {
  var i = n(6).ThunderEncode
    , r = n(1).thunderHrefAttr
    , o = n(8)
    , E = n(0).getUserBrowser
    , a = n(0).detectIE
    , C = n(58).hex_sha1
    , s = navigator.userAgent.indexOf("MSIE") > 0
    , B = a();
  function D(e, t, n) {
    var a = arguments[0]
      , s = arguments[1]
      , u = arguments[2] ? arguments[2] : ""
      , A = void 0 !== arguments[3] ? arguments[3] : null
      , l = unescape("%u8FC5%u96F7%u4E13%u7528%u9AD8%u901F%u4E0B%u8F7D")
      , c = ""
      , F = 0
      , d = ""
      , h = ""
      , p = D.LINK + "&nbsp;&nbsp;"
      , f = 0
      , m = r;
    try {
      d = thunderHTMLInsert
    } catch (e) {
      d = "&nbsp;"
    }
    try {
      0 != thunderLinkPos && null != thunderLinkPos && (f = "afterEnd",
      h = d,
      d = "")
    } catch (e) {
      f = "beforeBegin"
    }
    try {
      F = thunderLinkCount
    } catch (e) {
      F = 0
    }
    try {
      c = o.exceptPath
    } catch (e) {
      c = ""
    }
    try {
      p = thunderLinkHTML
    } catch (e) {}
    if (p.indexOf(D.LINK) < 0 && (p += D.LINK),
    null == A)
      try {
        A = thunderAppend
      } catch (e) {
        A = !1
      }
    if (D.isDebug && alert(A),
    "" == u || void 0 === u)
      try {
        u = thunderLinkStyle
      } catch (e) {
        u = ""
      }
    "" != u && (u = u.replace(/\\/g, "\\"));
    var v = ".srt|.mkv|.jad|.bis|.bin|.sw|.reg|.sisx|.sis|.eet|.xls|.nh|.kdh|.ppt|.mdf|.wmp|.doc|.pdf|.chm|.asf|.avi|.exe|.iso|.mp3|.mpeg|.mpg|.mpga|.ra|.rar|.rm|.rmvb|.tar|.wma|.wmv|.zip|.swf|.mp4|.3gp|.torrent|.txt|.jar|.mov|.wav|.eip";
    if (void 0 === a || null == a) {
      try {
        a = o.pid
      } catch (e) {
        a = ""
      }
      if ("" == a || null == typeof a || isNaN(a))
        return D.isDebug && alert("Pid is not provided!"),
        !1
    }
    if (null == s || void 0 === s)
      try {
        s = thunderPath
      } catch (e) {
        s = ""
      }
    var g = j_xunlei_q(document.links).filter(".thunder-link")
      , _ = (v = v.replace(/\./g, "\\."),
    /^http:\/\/|https:\/\/|ftp:\/\/|mms:\/\/[\s\S]*?$/i)
      , y = /^http:\/\/|https:\/\/|ftp:\/\/[\s\S]*?$/i;
    "Android" == E() && (_ = /^http:\/\/|https:\/\/|ftp:\/\/|magnet:|ed2k:|mms:\/\/[\s\S]*?$/i);
    var b = g.length
      , w = 0
      , x = 0;
    F <= 0 && (F = b);
    for (var k = 0; k < b; k++)
      if (g[k + w].href) {
        if ("" != c)
          if ("string" == typeof c) {
            if (g[k + w].href.indexOf(c) >= 0)
              continue
          } else if (c.test && null != g[k + w].href.match(c))
            continue;
        var T = g[k + w].getAttribute(m);
        if ("#" == g[k + w].href.substr(g[k + w].href.length - 1, 1) && T) {
          D.isDebug && (alert("ThunderHref:" + T),
          alert("href:" + g[k + w].href));
          continue
        }
        if (B)
          var j = window.encodeURI(g[k + w].href);
        else
          j = g[k + w].href;
        var I = ""
          , S = "";
        if (0 == j.indexOf("thunder://"))
          S = j,
          D.isDebug && alert("thunderLinker![" + S + "]");
        else if (_.test(j))
          I = y.test(j) ? j.indexOf("?") > 0 ? j + "&" + C(j) : j + "?" + C(j) : j;
        else if ("" != s && null != s)
          if ("string" == typeof s)
            j.toLowerCase().indexOf("/" + s) > -1 && (I = j,
            D.isDebug && alert("other://String Path Valid!"));
          else if (s.test) {
            var N = s.test(j);
            j.indexOf("attachment") > 0 && D.isDebug && alert(String(s) + ".test('" + j + "')=" + String(N)),
            null != j.match(s) ? (I = j,
            D.isDebug && alert("**********************RegEx*********************")) : D.isDebug && alert("other://Reg Path Invalid!\n[" + s + "]" + j + "||||<" + String(N) + ">||||")
          }
        if ("" != I && (S = i(I)),
        "" != S) {
          var M = g[k + w];
          if ("" != u ? A && "" != I ? "" != I && (g[k + w].insertAdjacentHTML(f, p.replace(D.LINK, h + "<a class='" + M.className + "' target='_self' href='#' title='" + l + "' " + m + "='" + S + "' thunderPid='" + a + "' thunderType='' thunderResTitle='' onClick='return OnDownloadClick_Simple(this,2)' oncontextmenu='ThunderNetwork_SetHref(this)'>" + u.replace(D.TITLE, M.innerHTML) + "</a>") + d),
          w++,
          x++) : (M.setAttribute("thunderPid", a),
          M.setAttribute("thunderType", ""),
          M.setAttribute("thunderResTitle", M.innerHTML),
          M.setAttribute("onclick", "return OnDownloadClick_Simple(this,2);"),
          M.setAttribute(m, S),
          x++) : A && "" != I ? "" != I && (g[k + w].insertAdjacentHTML(f, p.replace(D.LINK, h + "<a class='" + M.className + "' target='_self' href='#' title='" + l + "' " + m + "='" + S + "' thunderPid='" + a + "' thunderType='' thunderResTitle='' onClick='return OnDownloadClick_Simple(this,2)' oncontextmenu='ThunderNetwork_SetHref(this)'><font color='red'>" + l + "</font></a>") + d),
          w++,
          x++) : (M.setAttribute("thunderPid", a),
          M.setAttribute("thunderType", ""),
          M.setAttribute("thunderResTitle", M.innerHTML),
          M.setAttribute("onclick", "return OnDownloadClick_Simple(this,2);"),
          M.setAttribute(m, S),
          x++),
          D.isDebug && alert(x),
          x >= F)
            break
        }
      }
  }
  D.TITLE = "[$TITLE$]",
  D.LINK = "[$LINK$]",
  D.isDebug = document.location.search.indexOf("thunderdbg=1") > 0,
  D.auto = !0,
  s && (document.onreadystatechange = function() {
    if ("complete" == document.readyState) {
      try {
        D.auto = thunderFuncType
      } catch (e) {
        D.auto = !0
      }
      if (document.body && D.auto) {
        var e = function() {};
        "function" == typeof document.body.onload && (e = document.body.onload),
        document.body.onload = function() {
          e(),
          D()
        }
      } else if (D.isDebug && !document.body)
        for (e in document)
          alert(e)
    }
  }
  ),
  e.exports = D
}
, function(e, t) {
  var n = 0;
  function i(e) {
    return function(e) {
      for (var t = n ? "0123456789ABCDEF" : "0123456789abcdef", i = "", r = 0; r < 4 * e.length; r++)
        i += t.charAt(e[r >> 2] >> 8 * (3 - r % 4) + 4 & 15) + t.charAt(e[r >> 2] >> 8 * (3 - r % 4) & 15);
      return i
    }(function(e) {
      for (var t = e, n = Array(80), i = 1732584193, C = -271733879, s = -1732584194, B = 271733878, D = -1009589776, u = 0; u < t.length; u += 16) {
        for (var A = i, l = C, c = s, F = B, d = D, h = 0; h < 80; h++) {
          n[h] = h < 16 ? t[u + h] : a(n[h - 3] ^ n[h - 8] ^ n[h - 14] ^ n[h - 16], 1);
          var p = E(E(a(i, 5), r(h, C, s, B)), E(E(D, n[h]), o(h)));
          D = B,
          B = s,
          s = a(C, 30),
          C = i,
          i = p
        }
        i = E(i, A),
        C = E(C, l),
        s = E(s, c),
        B = E(B, F),
        D = E(D, d)
      }
      return new Array(i,C,s,B,D)
    }(function(e) {
      for (var t = 1 + (e.length + 8 >> 6), n = new Array(16 * t), i = 0; i < 16 * t; i++)
        n[i] = 0;
      for (i = 0; i < e.length; i++)
        n[i >> 2] |= e.charCodeAt(i) << 24 - 8 * (3 & i);
      return n[i >> 2] |= 128 << 24 - 8 * (3 & i),
      n[16 * t - 1] = 8 * e.length,
      n
    }(e)))
  }
  function r(e, t, n, i) {
    return e < 20 ? t & n | ~t & i : e < 40 ? t ^ n ^ i : e < 60 ? t & n | t & i | n & i : t ^ n ^ i
  }
  function o(e) {
    return e < 20 ? 1518500249 : e < 40 ? 1859775393 : e < 60 ? -1894007588 : -899497514
  }
  function E(e, t) {
    var n = (65535 & e) + (65535 & t);
    return (e >> 16) + (t >> 16) + (n >> 16) << 16 | 65535 & n
  }
  function a(e, t) {
    return e << t | e >>> 32 - t
  }
  t.hex_sha1 = function(e) {
    return "jjf=NSU4NSU4Q&sum=" + i(function(e) {
      var t, n, i, r;
      for (t = "",
      i = e.length,
      n = 0; n < i; n++)
        (r = e.charCodeAt(n)) >= 1 && r <= 127 ? t += e.charAt(n) : r > 2047 ? (t += String.fromCharCode(224 | r >> 12 & 15),
        t += String.fromCharCode(128 | r >> 6 & 63),
        t += String.fromCharCode(128 | r >> 0 & 63)) : (t += String.fromCharCode(192 | r >> 6 & 31),
        t += String.fromCharCode(128 | r >> 0 & 63));
      return t
    }(e = e + "NSU4NSU4Q")).substr(0, 10)
  }
}
]);
